在 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