使用命令stop-cluster.sh关闭flink集群的时候出现以下错误,

No taskexecutor daemon to stop on host tanghc-X550JX.

No standalonesession daemon to stop on host tanghc-X550JX.

解决flink启动后无法正常关闭_配置项

jps查看进程发现,flink是启动着的,8081端口查看也是正常的,解决flink启动后无法正常关闭_大数据_02

为什么会无法正常关闭,还提示没有taskexecutor和standalonesession进程呢?

我想起以前spark集群也出现过类似的问题,原因是spark启动是会把启动的进程的ID存到一个文件中,由于配置不修改的话文件默认是保存到系统的/tmp目录下,由于是临时目录,会被系统清理,所以存放的ID就找不到了,也就没法关闭集群了。

去到/tmp目录下查看文件,果然发现了flink的PID文件

解决flink启动后无法正常关闭_大数据_03

这样一来就好办了,只要把这个配置项一改不就齐活了。

根据spark的经验首先我进入到FLINK_HOME的conf目录下

解决flink启动后无法正常关闭_spark_04

打开flink-conf.yaml,发现,找不到PID的配置选项,我没认输,我又一行一行看了一遍,确实没有,难道flink不能修改??我用大腿思考了一下,回到了我提出的问题,不可能!一定可以修改,这时候突然想起,要不看看启动脚本?

解决flink启动后无法正常关闭_spark_05

嘿嘿嘿~没有!不过英语超级厉(la)害(ji)的我发现了这个

解决flink启动后无法正常关闭_大数据_06

在FLINK_HOME/bin/目录下我看到了config.sh文件解决flink启动后无法正常关闭_flink_07

vim打开

解决flink启动后无法正常关闭_配置项_08

我看到了熟悉的配置项:××××××_PID_DIR

果然指定的是/tmp,将此配置项目修改到合适的位置(博主直接在FLINK_HOME下建立了一个tmp目录)

解决flink启动后无法正常关闭_大数据_09

不过之前没法关闭的进程只能是强行Kill掉了。

重新启动后成功关闭

解决flink启动后无法正常关闭_flink_10