- 问题描述
在Ambari上集成Flink时,需要写stack脚本用于对Flink进行安装、启动、停止等操作。
- 问题现象
- 在Ambari界面上,host1通过Execute[’/usr/lib/flink/bin/start-cluster.sh’] {}的方式在host3上启动了一个TaskManagerRunner进程,但是host3执行Execute[’/usr/lib/flink/bin/taskmanager.sh stop’] {}一直失败无法关闭进程。
- 而且在MobaXterm窗口中执行命令[root@ambari-instance-3 ~]#/usr/lib/flink/bin/taskmanager.sh stop可以关闭该进程;
- 同时又在host3上执行Execute[’/usr/lib/flink/bin/taskmanager.sh start’] {}启动了一个新的TaskManagerRunner进程,却可以在host3执行Execute[’/usr/lib/flink/bin/taskmanager.sh stop’] {}关闭进程
-
问题解决
加上user = 'root’就可以了
Execute(flink_params.flink_bin_dir + “/taskmanager.sh stop”, user = ‘root’) -
问题原因(猜测)
在使用Execute方式时,没有规范的指定user
1)在Ambari中Execute即使不指定user,也会有默认user,同时谁启动谁关闭
2)或者是因为root的权限高