Apache?Linkis?中間件架構(gòu)及快速安裝步驟
1、Apache Linkis 介紹
Linkis 在上層應(yīng)用和底層引擎之間構(gòu)建了一層計(jì)算中間件。通過使用Linkis 提供的REST/WebSocket/JDBC 等標(biāo)準(zhǔn)接口,上層應(yīng)用可以方便地連接訪問Spark, Presto, Flink 等底層引擎,同時(shí)實(shí)現(xiàn)跨引擎上下文共享、統(tǒng)一的計(jì)算任務(wù)和引擎治理與編排能力。
MySQL/Spark/Hive/Presto/Flink 等底層引擎,同時(shí)實(shí)現(xiàn)變量、腳本、函數(shù)和資源文件等用戶資源的跨上層應(yīng)用互通。作為計(jì)算中間件,Linkis 提供了強(qiáng)大的連通、復(fù)用、編排、擴(kuò)展和治理管控能力。通過計(jì)算中間件將應(yīng)用層和引擎層解耦,簡化了復(fù)雜的網(wǎng)絡(luò)調(diào)用關(guān)系,降低了整體復(fù)雜度,同時(shí)節(jié)約了整體開發(fā)和維護(hù)成本。
2.1 計(jì)算中間件概念
沒有Linkis之前
上層應(yīng)用以緊耦合方式直連底層引擎,使得數(shù)據(jù)平臺(tái)變成復(fù)雜的網(wǎng)狀結(jié)構(gòu)
有Linkis之后
通過計(jì)算中間件將應(yīng)用層和引擎層解耦,以標(biāo)準(zhǔn)化可復(fù)用方式簡化復(fù)雜的網(wǎng)狀調(diào)用關(guān)系,降低數(shù)據(jù)平臺(tái)復(fù)雜度
2.2 整體架構(gòu)
Linkis 在上層應(yīng)用和底層引擎之間構(gòu)建了一層計(jì)算中間件。通過使用Linkis 提供的REST/WebSocket/JDBC 等標(biāo)準(zhǔn)接口,上層應(yīng)用可以方便地連接訪問Spark, Presto, Flink 等底層引擎。
2.3 核心特點(diǎn)
- 豐富的底層計(jì)算存儲(chǔ)引擎支持。目前支持的計(jì)算存儲(chǔ)引擎:Spark、Hive、Python、Presto、ElasticSearch、MLSQL、TiSpark、JDBC和Shell等。正在支持中的計(jì)算存儲(chǔ)引擎:Flink(>=1.0.2版本已支持)、Impala等。支持的腳本語言:SparkSQL, HiveQL, Python, Shell, Pyspark, R, Scala 和JDBC 等。
- 強(qiáng)大的計(jì)算治理能力?;贠rchestrator、Label Manager和定制的Spring Cloud Gateway等服務(wù),Linkis能夠提供基于多級(jí)標(biāo)簽的跨集群/跨IDC 細(xì)粒度路由、負(fù)載均衡、多租戶、流量控制、資源控制和編排策略(如雙活、主備等)支持能力。
- 全棧計(jì)算存儲(chǔ)引擎架構(gòu)支持。能夠接收、執(zhí)行和管理針對(duì)各種計(jì)算存儲(chǔ)引擎的任務(wù)和請(qǐng)求,包括離線批量任務(wù)、交互式查詢?nèi)蝿?wù)、實(shí)時(shí)流式任務(wù)和存儲(chǔ)型任務(wù);
- 資源管理能力。ResourceManager 不僅具備 Linkis0.X 對(duì) Yarn 和 Linkis EngineManager 的資源管理能力,還將提供基于標(biāo)簽的多級(jí)資源分配和回收能力,讓 ResourceManager 具備跨集群、跨計(jì)算資源類型的強(qiáng)大資源管理能力。
- 統(tǒng)一上下文服務(wù)。為每個(gè)計(jì)算任務(wù)生成context id,跨用戶、系統(tǒng)、計(jì)算引擎的關(guān)聯(lián)管理用戶和系統(tǒng)資源文件(JAR、ZIP、Properties等),結(jié)果集,參數(shù)變量,函數(shù)等,一處設(shè)置,處處自動(dòng)引用;
- 統(tǒng)一物料。系統(tǒng)和用戶級(jí)物料管理,可分享和流轉(zhuǎn),跨用戶、系統(tǒng)共享物料。
2.4 支持的引擎類型
引擎 | 引擎版本 | Linkis 0.X 版本要求 | Linkis 1.X 版本要求 | 說明 |
Flink | 1.12.2 | >=dev-0.12.0, PR #703 尚未合并 | >=1.0.2 | Flink EngineConn。支持FlinkSQL 代碼,也支持以Flink Jar 形式啟動(dòng)一個(gè)新的Yarn 應(yīng)用程序。 |
Impala | >=3.2.0, CDH >=6.3.0" | >=dev-0.12.0, PR #703 尚未合并 | ongoing | Impala EngineConn. 支持Impala SQL 代碼. |
Presto | >= 0.180 | >=0.11.0 | ongoing | Presto EngineConn. 支持Presto SQL 代碼. |
ElasticSearch | >=6.0 | >=0.11.0 | ongoing | ElasticSearch EngineConn. 支持SQL 和DSL 代碼. |
Shell | Bash >=2.0 | >=0.9.3 | >=1.0.0_rc1 | Shell EngineConn. 支持Bash shell 代碼. |
MLSQL | >=1.1.0 | >=0.9.1 | ongoing | MLSQL EngineConn. 支持MLSQL 代碼. |
JDBC | MySQL >=5.0, Hive >=1.2.1 | >=0.9.0 | >=1.0.0_rc1 | JDBC EngineConn. 已支持MySQL 和HiveQL,可快速擴(kuò)展支持其他有JDBC Driver 包的引擎, 如Oracle. |
Spark | Apache 2.0.0~2.4.7, CDH >=5.4.0 | >=0.5.0 | >=1.0.0_rc1 | Spark EngineConn. 支持SQL, Scala, Pyspark 和R 代碼. |
Hive | Apache >=1.0.0, CDH >=5.4.0 | >=0.5.0 | >=1.0.0_rc1 | Hive EngineConn. 支持HiveQL 代碼. |
Hadoop | Apache >=2.6.0, CDH >=5.4.0 | >=0.5.0 | ongoing | Hadoop EngineConn. 支持Hadoop MR/YARN application. |
Python | >=2.6 | >=0.5.0 | >=1.0.0_rc1 | Python EngineConn. 支持python 代碼. |
TiSpark | 1.1 | >=0.5.0 | ongoing | TiSpark EngineConn. 支持用SparkSQL 查詢TiDB. |
2、Apache Linkis 快速部署
2.1 注意事項(xiàng)
因?yàn)閙ysql-connector-java驅(qū)動(dòng)是GPL2.0協(xié)議,不滿足Apache開源協(xié)議關(guān)于license的政策,因此從1.0.3版本開始,提供的Apache版本官方部署包,默認(rèn)是沒有mysql-connector-java-x.x.x.jar的依賴包,安裝部署時(shí)需要添加依賴到對(duì)應(yīng)的lib包中。
Linkis1.0.3 默認(rèn)已適配的引擎列表如下:
引擎類型 | 適配情況 | 官方安裝包是否包含 |
Python | 1.0已適配 | 包含 |
Shell | 1.0已適配 | 包含 |
Hive | 1.0已適配 | 包含 |
Spark | 1.0已適配 | 包含 |
2.2 確定環(huán)境
2.2.1 依賴
?引擎類型? | ?依賴環(huán)境? | ?特殊說明? |
?Python? | ?Python環(huán)境? | ?日志和結(jié)果集如果配置hdfs://則依賴HDFS環(huán)境? |
?JDBC? | ?可以無依賴? | ?日志和結(jié)果集路徑如果配置hdfs://則依賴HDFS環(huán)境? |
?Shell? | ?可以無依賴? | ?日志和結(jié)果集路徑如果配置hdfs://則依賴HDFS環(huán)境? |
?Hive? | ?依賴Hadoop和Hive環(huán)境? | |
?Spark? | ?依賴Hadoop/Hive/Spark? |
要求:安裝Linkis需要至少3G內(nèi)存。
默認(rèn)每個(gè)微服務(wù)JVM堆內(nèi)存為512M,可以通過修改??SERVER_HEAP_SIZE?
?來統(tǒng)一調(diào)整每個(gè)微服務(wù)的堆內(nèi)存,如果您的服務(wù)器資源較少,我們建議修改該參數(shù)為128M。如下:
vim ${LINKIS_HOME}/deploy-config/linkis-env.sh # java application default jvm memory. export SERVER_HEAP_SIZE="128M"
2.2.2 環(huán)境變量
官網(wǎng)示例:
#JDK export JAVA_HOME=/nemo/jdk1.8.0_141 ##如果不使用Hive、Spark等引擎且不依賴Hadoop,則不需要修改以下環(huán)境變量 #HADOOP export HADOOP_HOME=/appcom/Install/hadoop export HADOOP_CONF_DIR=/appcom/config/hadoop-config #Hive export HIVE_HOME=/appcom/Install/hive export HIVE_CONF_DIR=/appcom/config/hive-config #Spark export SPARK_HOME=/appcom/Install/spark export SPARK_CONF_DIR=/appcom/config/spark-config/ export PYSPARK_ALLOW_INSECURE_GATEWAY=1 # Pyspark必須加的參數(shù)
示例:
2.3 安裝包下載
??https://linkis.apache.org/zh-CN/download/main??
2.4 不依賴HDFS的基礎(chǔ)配置修改
vi deploy-config/linkis-env.sh #SSH_PORT=22 #指定SSH端口,如果單機(jī)版本安裝可以不配置 deployUser=hadoop #指定部署用戶 LINKIS_INSTALL_HOME=/appcom/Install/Linkis # 指定安裝目錄 WORKSPACE_USER_ROOT_PATH=file:///tmp/hadoop # 指定用戶根目錄,一般用于存儲(chǔ)用戶的腳本文件和日志文件等,是用戶的工作空間。 RESULT_SET_ROOT_PATH=file:///tmp/linkis # 結(jié)果集文件路徑,用于存儲(chǔ)Job的結(jié)果集文件 ENGINECONN_ROOT_PATH=/appcom/tmp #存放ECP的安裝路徑,需要部署用戶有寫權(quán)限的本地目錄 ENTRANCE_CONFIG_LOG_PATH=file:///tmp/linkis/ #ENTRANCE的日志路徑 ## LDAP配置,默認(rèn)Linkis只支持部署用戶登錄,如果需要支持多用戶登錄可以使用LDAP,需要配置以下參數(shù): #LDAP_URL=ldap://localhost:1389/ #LDAP_BASEDN=dc=webank,dc=com
2.5 修改數(shù)據(jù)庫配置
vi deploy-config/db.sh
2.6 安裝
執(zhí)行安裝腳本:??sh bin/install.sh?
?
install.sh腳本會(huì)詢問您是否需要初始化數(shù)據(jù)庫并導(dǎo)入元數(shù)據(jù)。
因?yàn)閾?dān)心用戶重復(fù)執(zhí)行install.sh腳本,把數(shù)據(jù)庫中的用戶數(shù)據(jù)清空,所以在install.sh執(zhí)行時(shí),會(huì)詢問用戶是否需要初始化數(shù)據(jù)庫并導(dǎo)入元數(shù)據(jù)。
2.7 檢查是否安裝成功
2.8 快速啟動(dòng)Linkis
啟動(dòng)服務(wù)
sh sbin/linkis-start-all.sh
查看是否啟動(dòng)成功
可以在Eureka界面查看服務(wù)啟動(dòng)成功情況,查看方法:
使用???http://${EUREKA_INSTALL_IP}:${EUREKA_PORT}??
?, 在瀏覽器中打開,查看服務(wù)是否注冊(cè)成功。
如果您沒有在config.sh指定EUREKA_INSTALL_IP和EUREKA_INSTALL_IP,則HTTP地址為:http://127.0.0.1:20303
默認(rèn)會(huì)啟動(dòng)8個(gè)Linkis微服務(wù),其中圖下linkis-cg-engineconn服務(wù)為運(yùn)行任務(wù)才會(huì)啟動(dòng)
2.9 問題集
1、telnet
<-----start to check used cmd----> check command fail need 'telnet' (your linux command not found) Failed to + check env
解決:sudo yum -y install telnet
2、connection exception
mkdir: Call From hadoop01/192.168.88.111 to hadoop01:9820 failed on connection exception: java.net.ConnectException: 拒絕連接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused Failed to + create hdfs:///tmp/linkis directory
解決:啟動(dòng)HDFS
到此這篇關(guān)于ApacheLinkis中間件架構(gòu)及快速安裝的文章就介紹到這了,更多相關(guān)ApacheLinkis中間件內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。