ChatGPT解决这个技术问题 Extra ChatGPT

如何杀死正在运行的 Spark 应用程序?

我有一个正在运行的 Spark 应用程序,它占据了我的其他应用程序不会被分配任何资源的所有内核。

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

https://i.stack.imgur.com/b3f8j.jpg

有人可以和我一起吗?

如果您在测试环境中:ps aux | grep spark -> 获取 spark 的 pid 并从命令行中将其杀死
@eliasah“测试环境”,对我来说,工作已经分发了..
你想杀死生产中的工作????
@eliasah 是的……由于一台主机出现故障,生产中的一项工作被挂起。

y
yatu

从 spark 调度程序复制粘贴应用程序 ID,例如 application_1428487296152_25597

连接到已启动作业的服务器

纱线应用程序-kill application_1428487296152_25597


你如何进入火花调度程序?
它与 web UI 相同吗?
@Hunle 您可以从 Spark History UI 或 YARN RUNNING 应用程序 UI (yarn-host:8088/cluster/apps/RUNNING) 或 Spark Job Web UI URL (yarn-host:8088/proxy/application_<timestamp>_<id>) 获取 ID
可以一次杀死几个:yarn application -kill application_1428487296152_25597 application_1428487296152_25598 ... ??
D
Darth Hunterix

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

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

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


A
Ankit Anand

首次使用:

yarn application -list

记下应用程序 ID 然后终止使用:

yarn application -kill application_id

对于未来的我,一个命令可以结合这两个yarn application -list|cut -f 1 |grep "application_" |xargs -I {} -P 1 -n 1 yarn application -kill {}
S
Starwalker

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

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

{
  "state":"KILLED"
}

S
Sachin Gaikwad

这可能不是一个合乎道德和首选的解决方案,但它有助于在您无法访问控制台以使用 yarn 应用程序命令终止作业的环境中。

步骤是

转到 spark 作业的应用程序母版页。点击工作部分。单击活动作业的活动阶段。您将在活动阶段旁边看到“杀死”按钮。

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