Killing Spark job using command Prompt
这是我希望可以回答我的问题的线程。但是所有四个答案都说明了如何终止整个应用程序。
如何停止工作?例如计数吗?
我可以在Spark Web UI中通过单击相应作业上的“ kill”来执行此操作。我想必须可以列出正在运行的作业并直接通过CLI与之交互。
实际上,我正在使用在Glue端点上具有PySpark的笔记本电脑工作。如果我终止了该应用程序,则整个端点都将消失,并且必须启动一个新集群。我只是想停止工作。在Notebook中取消它只会断开同步,并且作业将继续运行,从而阻止了其他任何命令的执行。
答案 0 :(得分:1)
Spark History Server提供了REST API interface。不幸的是,它仅公开了对应用程序,作业,阶段等的监视功能。
还有一个REST Submission interface,该功能提供了提交,取消和检查应用程序状态的功能。它没有记录在案的AFAIK,仅在Spark独立群集和Mesos群集上受支持,没有YARN。 (我想这就是为什么Jobs UI屏幕上的YARN上Spark不存在“ kill”链接的原因。)
因此,您可以尝试使用该“隐藏” API,但是如果您知道应用程序的Spark UI URL和要杀死的工作的工作ID,则更简单的方法是:
$ curl -G http://<Spark-Application-UI-host:port>/jobs/job/kill/?id=<job_id>
由于我不与Glue合作,所以我很想了解一下它的反应方式,因为杀死通常会导致org.apache.spark.SparkException: Job <job_id> cancelled
。
答案 1 :(得分:0)
列出Linux中的作业并将其杀死。
我会的 ps -ef | grep spark-submit 如果开始使用spark-submit。从输出中获取PID,然后 杀死-9
答案 2 :(得分:0)
以mazaneicha的答案为基础,对于以Spark 2.4.6
模式提交的作业,对于standalone
模式下的client
,卷曲请求以已知的applicationID是
curl -d "id=<your_appID>&terminate=true" -X POST <your_spark_master_url>/app/kill/
我们遇到了类似的问题,人们没有将笔记本电脑从群集中断开,从而浪费了资源。
我们通过解析webUI获得正在运行的应用程序的列表。我敢肯定,管理Spark集群的方式会比较简单。
答案 3 :(得分:-1)
通过以下方式杀死正在运行的工作:
Spark
应用程序用户界面。 jobs
标签。 job
中找到running jobs
。 kill
链接并确认。答案 4 :(得分:-1)
在终端中,如果您的资源管理器是yarn,您还可以使用yarn命令取消该工作。 列出正在运行的应用程序的第一个命令:
:纱线应用-list
这将列出正在运行的spark应用程序以及其他应用程序。 确定您的应用程序后,获取它的应用程序ID,然后通过粘贴ID复制以下内容:
:纱线应用程序-kill applicationid