Spark Kill运行应用程序

时间:2015-04-10 15:51:28

标签: apache-spark yarn pyspark

我有一个正在运行的Spark应用程序,它占用了我的其他应用程序无法分配任何资源的所有核心。

我做了一些快速的研究,人们建议使用YARN kill或/ bin / spark-class来杀死命令。但是,我使用CDH版本和/ bin / spark-class甚至根本不存在,YARN kill应用程序也不起作用。

enter image description here

有人陪我这个吗?

5 个答案:

答案 0 :(得分:158)

  • 从spark调度程序复制应用程序ID,例如 application_1428487296152_25597
  • 连接到已启动作业的服务器
  • yarn application -kill application_1428487296152_25597

答案 1 :(得分:2)

https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Application_State_API

PUT http:// {rm http address:port} / ws / v1 / cluster / apps / {appid} / state

{
  "state":"KILLED"
}

答案 2 :(得分:2)

首次使用:

yarn application -list

记下应用程序ID 然后杀死使用:

yarn application -kill application_id

答案 3 :(得分:1)

这可能不是道德和首选的解决方案,但在无法访问控制台以使用yarn application命令杀死工作的环境中,它会有所帮助。

步骤是

转到spark作业的应用程序主页。 单击作业部分。 单击活动作业的活动阶段。 您会在活动阶段旁边看到“ kill”按钮。

如果后续阶段取决于当前运行阶段,则此方法有效。虽然将作业标记为“被用户杀死”

答案 4 :(得分:0)

从YARN获取所有应用程序ID并将它们逐一杀死可能会很耗时。您可以使用Bash for循环来快速高效地完成此重复任务,如下所示:

杀死YARN上处于接受状态的所有应用程序:

for x in $(yarn application -list -appStates ACCEPTED | awk 'NR > 2 { print $1 }'); do yarn application -kill $x; done

杀死YARN上所有处于RUNNING状态的应用程序

for x in $(yarn application -list -appStates RUNNING | awk 'NR > 2 { print $1 }'); do yarn application -kill $x; done