# 部署集群
在 Flink 集群部署 Alink,需要部署几个 Jar 包(本文会有一个部分专门讲述如何获取)。
对于不同 Flink 集群环境,方式有些区别,本文主要讨论 Standalone 集群和 Kubernetes 集群。
## 获取集群部署所需Jar包
由于 Alink 可以通过 Java 和 Python 两种方式提交,建议在集群部署的时候将相关 Jar 包一起部署上去。
尽管 Alink Java 没有单独提供集群部署所需 Jar 包的下载,但它们与 PyAlink 所使用的一致,所以可以从 PyAlink 的```lib```目录中获取。
具体方式如下:
按照[Alink快速开始](https://github.com/alibaba/Alink/blob/master/README.md#快速开始) 安装好 PyAlink,
执行命令```python3 -c "import os; import pyalink; print(os.path.join(pyalink.__path__[0], 'lib'))"```,
在 Python 标准输出中即可拿到对应的 PyAlink ```lib```目录的路径。
在安装完成文件系统和Hive后,```lib```目录的结构如下图所示:
## 在Standalone集群上部署
将前面获取到的```lib```目录中的 Jar 包拷贝到 Flink 的```lib```目录后,然后按下面步骤启动 Flink 集群即可:
1. 在 Flink 配置中增加:```classloader.resolve-order: parent-first```,通常在配置文件```conf/flink-conf.yaml```里添加。
2. 在 flink-[版本号]目录下,运行 ```bin/start-cluster.sh``` 启动集群。
3. 运行```bin/taskmanager.sh start``` 可以增加 TaskManager。
更多内容可以参考:[https://ci.apache.org/projects/flink/flink-docs-stable/ops/deployment/cluster_setup.html](https://ci.apache.org/projects/flink/flink-docs-stable/ops/deployment/cluster_setup.html)
## 在Kubernetes集群上部署
将前面获取的目录中的 Jar 包放置进 Docker 镜像中,并将以下命令添加进 DockerFile,打包镜像即可。
```
ADD $PY_ALINK_LIB_FOLDER/* $FLINK_LIB_DIR/
```
使用Flink官方提供的部署方式,其中增加 ```classloader.resolve-order: parent-first``` 配置项。
参考:[https://ci.apache.org/projects/flink/flink-docs-stable/ops/deployment/kubernetes.html](https://ci.apache.org/projects/flink/flink-docs-stable/ops/deployment/kubernetes.html)