我有一个正在运行的Spark应用程序,该应用程序占据了所有我的其他应用程序都不会分配任何资源的核心。
我做了一些快速研究,有人建议使用YARN kill或/ bin / spark-class终止命令。但是,我正在使用CDH版本,并且/ bin / spark-class甚至根本不存在,YARN kill应用程序也不起作用。
谁能和我一起吗?
我有一个正在运行的Spark应用程序,该应用程序占据了所有我的其他应用程序都不会分配任何资源的核心。
我做了一些快速研究,有人建议使用YARN kill或/ bin / spark-class终止命令。但是,我正在使用CDH版本,并且/ bin / spark-class甚至根本不存在,YARN kill应用程序也不起作用。
谁能和我一起吗?
Answers:
yarn application -kill application_1428487296152_25597
web UI
吗?
Spark History UI
或纱线RUNNING
应用程式用户介面(纱主机:8088 /集群/应用/跑步)或Spark Job Web UI
URL(纱主机:8088 /代理/ application_ <时间戳> _ <编号>)
从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
PUT http:// {rm http address:port} / ws / v1 / cluster / apps / {appid} / state
{
"state":"KILLED"
}
这可能不是一个道德且首选的解决方案,但在无法访问控制台以使用yarn application命令终止工作的环境中,它会有所帮助。
步骤是
转到spark作业的应用程序主页。单击作业部分。单击活动作业的活动阶段。您将在活动阶段旁边看到“ kill”按钮。
如果后续阶段取决于当前运行的阶段,则此方法有效。虽然将作业标记为“被用户杀死”