为什么stop-cluster.sh会停止最新启动的Flink集群?

时间:2018-08-30 15:21:57

标签: apache-flink

我计划从Flink 1.5.2升级到1.6.0,然后进行作业迁移。为了使作业的暂停时间最短,我计划同时运行两个Flink群集,在成功迁移作业之后,我将停止旧的群集。但是,当我尝试通过在目录Flink1.5.2 / bin中运行stop-cluster.sh来停止Flink群集时,我发现停止的群集是Flink 1.6.0,而不是预期的Flink 1.5.2。

我做了一些测试,发现stop-cluster.sh只是停止了最新启动的Flink集群,也就是说,如果先启动集群1.6.0,然后再启动Flink 1.5.2,然后再运行stop -cluster.sh,它将首先停止Flink 1.5.2,即使您在群集1.6.0目录Flink1.6.0 / bin上运行stop-cluster.sh也是如此。根据我的理解,在Flink1.6.0 / bin上运行stop-cluster.sh时,应停止集群1.6.0,而在Flink1.5.2 / bin上运行stop-cluster.sh时应停止集群1.5.2。 ,但是没有。

我做了一些研究,发现stop-cluster.sh将基于包含pid的文件杀死该进程,但是我不知道该文件的位置,并且我怀疑这两个集群都写了pid在它们启动的相同位置,使stop-cluster.sh变得混乱。

请告知如何停止指定的群集。

1 个答案:

答案 0 :(得分:1)

默认情况下,pid文件被写入/tmp,并且名称为flink-<USER>-<FLINK_COMPONENT>.pid。您可以通过在env.pid.dir中设置flink-conf.yaml配置来控制目录。通过使用不同的pid文件目录,您可以控制不同的群集。