如何杀死 运行 Spark 应用程序?
How to kill a running Spark application?
我有一个 运行 Spark 应用程序,它占用了我的其他应用程序不会分配任何资源的所有内核。
我做了一些快速研究,人们建议使用 YARN kill 或 /bin/spark-class 来终止命令。但是,我使用的是 CDH 版本,/bin/spark-class 根本不存在,YARN kill 应用程序也不起作用。
谁能帮我解决这个问题?
- 复制粘贴来自 spark 调度程序的应用程序 ID,例如 application_1428487296152_25597
- 连接到已启动作业的服务器
yarn application -kill application_1428487296152_25597
PUT http://{rm http address:port}/ws/v1/cluster/apps/{appid}/state
{
"state":"KILLED"
}
从 YARN 中获取所有应用程序 ID 并将它们一一杀死可能很耗时。您可以使用 Bash for 循环来快速高效地完成此重复性任务,如下所示:
终止 YARN 上所有处于已接受状态的应用程序:
for x in $(yarn application -list -appStates ACCEPTED | awk 'NR > 2 { print }'); do yarn application -kill $x; done
杀死 YARN 上所有处于 运行 状态的应用程序:
for x in $(yarn application -list -appStates RUNNING | awk 'NR > 2 { print }'); do yarn application -kill $x; done
这可能不是一个合乎道德和首选的解决方案,但它在您无法访问控制台以使用 yarn application 命令终止作业的环境中有所帮助。
步骤是
转到 spark 作业的应用程序母版页。
单击作业部分。
单击活动作业的活动阶段。
您会在活动阶段旁边看到 "kill" 按钮。
如果后续阶段依赖于当前 运行 阶段,则此方法有效。虽然它将工作标记为“被用户杀死”
首次使用:
yarn application -list
记下应用程序 ID
然后杀死使用:
yarn application -kill application_id
我有一个 运行 Spark 应用程序,它占用了我的其他应用程序不会分配任何资源的所有内核。
我做了一些快速研究,人们建议使用 YARN kill 或 /bin/spark-class 来终止命令。但是,我使用的是 CDH 版本,/bin/spark-class 根本不存在,YARN kill 应用程序也不起作用。
谁能帮我解决这个问题?
- 复制粘贴来自 spark 调度程序的应用程序 ID,例如 application_1428487296152_25597
- 连接到已启动作业的服务器
yarn application -kill application_1428487296152_25597
PUT http://{rm http address:port}/ws/v1/cluster/apps/{appid}/state
{
"state":"KILLED"
}
从 YARN 中获取所有应用程序 ID 并将它们一一杀死可能很耗时。您可以使用 Bash for 循环来快速高效地完成此重复性任务,如下所示:
终止 YARN 上所有处于已接受状态的应用程序:
for x in $(yarn application -list -appStates ACCEPTED | awk 'NR > 2 { print }'); do yarn application -kill $x; done
杀死 YARN 上所有处于 运行 状态的应用程序:
for x in $(yarn application -list -appStates RUNNING | awk 'NR > 2 { print }'); do yarn application -kill $x; done
这可能不是一个合乎道德和首选的解决方案,但它在您无法访问控制台以使用 yarn application 命令终止作业的环境中有所帮助。
步骤是
转到 spark 作业的应用程序母版页。 单击作业部分。 单击活动作业的活动阶段。 您会在活动阶段旁边看到 "kill" 按钮。
如果后续阶段依赖于当前 运行 阶段,则此方法有效。虽然它将工作标记为“被用户杀死”
首次使用:
yarn application -list
记下应用程序 ID 然后杀死使用:
yarn application -kill application_id