手动阻止Spark工作者

时间:2016-04-17 05:37:13

标签: apache-spark

有没有办法阻止Spark工作人员通过终端?我知道脚本:start-all.sh,stop-all.sh,stop-workers.sh等。但是,每次运行start-all.sh时,似乎都有来自先前Spark集群实例的剩余工作程序也产生了。我知道这是因为Worker Id包含创建工作人员的日期和时间戳。

所以当我今天运行start-all.sh时,我会看到4月初创建的7个左右的工人。

有没有办法杀死这些早期的工人?或者也许是一种grep for process进程名称的方法?

2 个答案:

答案 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,即强制终止,不建议将其用作最后的手段)。再见过程。