有没有办法阻止Spark工作人员通过终端?我知道脚本:start-all.sh,stop-all.sh,stop-workers.sh等。但是,每次运行start-all.sh时,似乎都有来自先前Spark集群实例的剩余工作程序也产生了。我知道这是因为Worker Id包含创建工作人员的日期和时间戳。
所以当我今天运行start-all.sh时,我会看到4月初创建的7个左右的工人。
有没有办法杀死这些早期的工人?或者也许是一种grep for process进程名称的方法?
答案 0 :(得分:2)
这在过去发生在我身上,我通常做的是:
1)找到进程ID:
ps aux | grep spark
2)杀了它:
sudo kill pid1
答案 1 :(得分:0)
您可以执行以下任一操作:
for pid in $(ps aux | grep spark | awk '{print $2}'); do kill -9 $pid; done
或
for pid in $(jps | grep Worker | awk '{print $1}'); do kill -9 $pid; done
我建议您使用第二个,这样您就不会意外杀死某些东西,因为第一个也将显示grep的pid以及可能正在运行的其他内容。
说明(可能对新用户有用)
在管道中,我们有ps(为我们提供了当前正在运行的进程)或jps(jvm进程状态工具,为我们提供了jvm中进程的进程ID),然后进行grep并根据输出获取pid在awk的帮助下。
在循环中,使用信号为-9的kill命令(SIGKILL,即强制终止,不建议将其用作最后的手段)。再见过程。