Apache Linkis 中間件架構及快速安裝步驟
目錄
- 1、ApacheLinkis介紹
- 2.1計算中間件概念
- 2.2整體架構
- 2.3核心特點
- 2.4支持的引擎類型
- 2、ApacheLinkis快速部署
- 2.1注意事項
- 2.2確定環境
- 2.2.1依賴
- 2.2.2環境變量
- 2.3安裝包下載
- 2.4不依賴HDFS的基礎配置修改
- 2.5修改數據庫配置
- 2.6安裝
- 2.7檢查是否安裝成功
- 2.8快速啟動Linkis
- 2.9問題集
1、Apache Linkis 介紹
Linkis 在上層應用和底層引擎之間構建了一層計算中間件。通過使用Linkis 提供的REST/WebSocket/JDBC 等標準接口,上層應用可以方便地連接訪問Spark, Presto, Flink 等底層引擎,同時實現跨引擎上下文共享、統一的計算任務和引擎治理與編排能力。
MySQL/Spark/Hive/Presto/Flink 等底層引擎,同時實現變量、腳本、函數和資源文件等用戶資源的跨上層應用互通。作為計算中間件,Linkis 提供了強大的連通、復用、編排、擴展和治理管控能力。通過計算中間件將應用層和引擎層解耦,簡化了復雜的網絡調用關系,降低了整體復雜度,同時節約了整體開發和維護成本。
2.1 計算中間件概念
沒有Linkis之前
上層應用以緊耦合方式直連底層引擎,使得數據平臺變成復雜的網狀結構
有Linkis之后
通過計算中間件將應用層和引擎層解耦,以標準化可復用方式簡化復雜的網狀調用關系,降低數據平臺復雜度
2.2 整體架構
Linkis 在上層應用和底層引擎之間構建了一層計算中間件。通過使用Linkis 提供的REST/WebSocket/JDBC 等標準接口,上層應用可以方便地連接訪問Spark, Presto, Flink 等底層引擎。
2.3 核心特點
- 豐富的底層計算存儲引擎支持。目前支持的計算存儲引擎:Spark、Hive、Python、Presto、ElasticSearch、MLSQL、TiSpark、JDBC和Shell等。正在支持中的計算存儲引擎:Flink(>=1.0.2版本已支持)、Impala等。支持的腳本語言:SparkSQL, HiveQL, Python, Shell, Pyspark, R, Scala 和JDBC 等。
- 強大的計算治理能力?;贠rchestrator、Label Manager和定制的Spring Cloud Gateway等服務,Linkis能夠提供基于多級標簽的跨集群/跨IDC 細粒度路由、負載均衡、多租戶、流量控制、資源控制和編排策略(如雙活、主備等)支持能力。
- 全棧計算存儲引擎架構支持。能夠接收、執行和管理針對各種計算存儲引擎的任務和請求,包括離線批量任務、交互式查詢任務、實時流式任務和存儲型任務;
- 資源管理能力。ResourceManager 不僅具備 Linkis0.X 對 Yarn 和 Linkis EngineManager 的資源管理能力,還將提供基于標簽的多級資源分配和回收能力,讓 ResourceManager 具備跨集群、跨計算資源類型的強大資源管理能力。
- 統一上下文服務。為每個計算任務生成context id,跨用戶、系統、計算引擎的關聯管理用戶和系統資源文件(JAR、ZIP、Properties等),結果集,參數變量,函數等,一處設置,處處自動引用;
- 統一物料。系統和用戶級物料管理,可分享和流轉,跨用戶、系統共享物料。
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 形式啟動一個新的Yarn 應用程序。
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,可快速擴展支持其他有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 注意事項
因為mysql-connector-java驅動是GPL2.0協議,不滿足Apache開源協議關于license的政策,因此從1.0.3版本開始,提供的Apache版本官方部署包,默認是沒有mysql-connector-java-x.x.x.jar的依賴包,安裝部署時需要添加依賴到對應的lib包中。
Linkis1.0.3 默認已適配的引擎列表如下:
引擎類型
適配情況
官方安裝包是否包含
Python
1.0已適配
包含
Shell
1.0已適配
包含
Hive
1.0已適配
包含
Spark
1.0已適配
包含
2.2 確定環境
2.2.1 依賴
?引擎類型?
?依賴環境?
?特殊說明?
?Python?
?Python環境?
?日志和結果集如果配置hdfs://則依賴HDFS環境?
?JDBC?
?可以無依賴?
?日志和結果集路徑如果配置hdfs://則依賴HDFS環境?
?Shell?
?可以無依賴?
?日志和結果集路徑如果配置hdfs://則依賴HDFS環境?
?Hive?
?依賴Hadoop和Hive環境?
?Spark?
?依賴Hadoop/Hive/Spark?
要求:安裝Linkis需要至少3G內存。
默認每個微服務JVM堆內存為512M,可以通過修改??SERVER_HEAP_SIZE?
?來統一調整每個微服務的堆內存,如果您的服務器資源較少,我們建議修改該參數為128M。如下:
vim ${LINKIS_HOME}/deploy-config/linkis-env.sh# java application default jvm memory.export SERVER_HEAP_SIZE="128M"
2.2.2 環境變量
官網示例:
#JDKexport JAVA_HOME=/nemo/jdk1.8.0_141##如果不使用Hive、Spark等引擎且不依賴Hadoop,則不需要修改以下環境變量#HADOOP export HADOOP_HOME=/appcom/Install/hadoopexport HADOOP_CONF_DIR=/appcom/config/hadoop-config#Hiveexport HIVE_HOME=/appcom/Install/hiveexport HIVE_CONF_DIR=/appcom/config/hive-config#Sparkexport SPARK_HOME=/appcom/Install/sparkexport SPARK_CONF_DIR=/appcom/config/spark-config/export PYSPARK_ALLOW_INSECURE_GATEWAY=1 # Pyspark必須加的參數
示例:
2.3 安裝包下載
2.4 不依賴HDFS的基礎配置修改
vi deploy-config/linkis-env.sh#SSH_PORT=22#指定SSH端口,如果單機版本安裝可以不配置deployUser=hadoop #指定部署用戶LINKIS_INSTALL_HOME=/appcom/Install/Linkis # 指定安裝目錄WORKSPACE_USER_ROOT_PATH=file:///tmp/hadoop # 指定用戶根目錄,一般用于存儲用戶的腳本文件和日志文件等,是用戶的工作空間。RESULT_SET_ROOT_PATH=file:///tmp/linkis # 結果集文件路徑,用于存儲Job的結果集文件ENGINECONN_ROOT_PATH=/appcom/tmp #存放ECP的安裝路徑,需要部署用戶有寫權限的本地目錄ENTRANCE_CONFIG_LOG_PATH=file:///tmp/linkis/ #ENTRANCE的日志路徑## LDAP配置,默認Linkis只支持部署用戶登錄,如果需要支持多用戶登錄可以使用LDAP,需要配置以下參數:#LDAP_URL=ldap://localhost:1389/ #LDAP_BASEDN=dc=webank,dc=com
2.5 修改數據庫配置
vi deploy-config/db.sh
2.6 安裝
執行安裝腳本:??sh bin/install.sh?
?
install.sh腳本會詢問您是否需要初始化數據庫并導入元數據。
因為擔心用戶重復執行install.sh腳本,把數據庫中的用戶數據清空,所以在install.sh執行時,會詢問用戶是否需要初始化數據庫并導入元數據。
2.7 檢查是否安裝成功
2.8 快速啟動Linkis
啟動服務
sh sbin/linkis-start-all.sh
查看是否啟動成功
可以在Eureka界面查看服務啟動成功情況,查看方法:
使用???http://${EUREKA_INSTALL_IP}:${EUREKA_PORT}??
?, 在瀏覽器中打開,查看服務是否注冊成功。
如果您沒有在config.sh指定EUREKA_INSTALL_IP和EUREKA_INSTALL_IP,則HTTP地址為:http://127.0.0.1:20303
默認會啟動8個Linkis微服務,其中圖下linkis-cg-engineconn服務為運行任務才會啟動
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/ConnectionRefusedFailed to + create hdfs:///tmp/linkis directory
解決:啟動HDFS
到此這篇關于Apache Linkis 中間件架構及快速安裝的文章就介紹到這了,更多相關Apache Linkis 中間件內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!