我计划从flink1.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 cluster,也就是说,如果先启动cluster 1.6.0,然后再启动flink 1.5.2,之后运行stop-cluster.sh,即使在cluster 1.6.0目录flink1.6.0/bin下运行stop-cluster.sh,它也会先停止flink 1.5.2。根据我的理解,当在flink1.6.0/bin上运行stop-cluster.sh时,它应该停止cluster 1.6.0,当在flink1.5.2/bin上运行stop-cluster.sh时,它应该停止cluster 1.5.2,但是它没有。
我做了一些研究,发现stop-cluster.sh会根据包含pid的文件终止进程,但是我不知道该文件的位置,我怀疑两个集群在启动时在相同的位置写入pid,这使得stop-cluster.sh变得混乱。
请告知如何停止指定的群集。
1条答案
按热度按时间vql8enpb1#
默认情况下,pid文件写入
/tmp
有名字吗flink-<USER>-<FLINK_COMPONENT>.pid
. 您可以通过设置env.pid.dir
中的配置flink-conf.yaml
. 通过使用不同的pid文件目录,您可以控制不同的集群。