在 Flink 集群部署 Alink,需要部署三個 Jar 包(本文會有一個部分專門講述如何獲取),對於不同 Flink 集群環境,方式有些區別,本文主要討論 Standalone 集群和 Kubernetes 集群。
獲取集群部署所需 Jar 包
由於 Alink 可以通過 Java 和 Python 兩種方式提交,建議在集群部署的時候將相關 Jar 包一起部署上去。Alink 雖然沒有單獨提供集群部署 Jar 包的下載,但是所需 Jar 包與 PyAlink 所用的相同。所以可以從 PyAlink 的安裝 whl 包中獲取。具體方式如下:
1.下載 PyAlink 1.10 的 whl 包,相關鏈接:
https://github.com/alibaba/Alink/releases/tag/v1.1.0
2.解壓 PyAlink 1.10 的 whl 包
解壓後的文件結構如下圖所示,在 pyalink/lib 下為集群部署所需的三個 jar 包。
在 Standalone 集群上部署
將前面獲取的三個 Jar 包拷貝到 Flink 目錄下,再啟動 Flink 集群即可。
- 在 Flink 配置中增加:classloader.resolve-order: parent-first
- 在 flink-[版本號]目錄下,運行 bin/start-cluster.sh 啟動集群
- bin/taskmanager.sh start 可以增加 TM
更多內容可以參考:
https://ci.apache.org/projects/flink/flink-docs-stable/ops/deployment/cluster_setup.html
在 Kubernetes 集群上部署
將前面獲取的三個 Jar 包放置進 Docker 鏡像中,並將以下三個命令添加進 DockerFile,打包鏡像即可。
ADD alink_connector_all-1.1-SNAPSHOT.jar $FLINK_LIB_DIR/alink_connector_all-1.1-SNAPSHOT.jar
ADD alink_core_flink-1.10_2.11-1.1-SNAPSHOT.jar $FLINK_LIB_DIR/alink_core_flink-1.10_2.11-1.1-SNAPSHOT.jar
ADD alink_python-1.1-SNAPSHOT-shaded.jar $FLINK_LIB_DIR/ alink_python-1.1-SNAPSHOT-shaded.jar
使用 Flink 官方提供的部署方式,其中增加 classloader.resolve-order: parent-first 配置項。參考:
https://ci.apache.org/projects/flink/flink-docs-stable/ops/deployment/kubernetes.html
以上分享希望對你有所幫助,瞭解更多 Alink 上手實踐文章,後續公眾號將分享更多 Alink 技術乾貨,歡迎大家持續關注!