Apache spark 如何从CLI终止Spark作业?

Apache spark 如何从CLI终止Spark作业?,apache-spark,Apache Spark,这是我希望能回答我问题的线索。但这四个答案都解释了如何杀死整个应用程序 我怎样才能停止工作?比如说计数 我可以在Spark Web UI中通过单击相应作业上的“kill”来完成此操作。我认为必须能够列出正在运行的作业,并通过CLI直接与它们交互 实际上,我在一个笔记本上工作,在一个胶水端点上有PySpark。如果我杀死应用程序,整个端点都会死亡,我必须启动一个新集群。我只是想停止一项工作。在笔记本中取消它只会断开同步,作业将继续运行,阻止执行任何进一步的命令。通过以下方式终止正在运行的作业: 打

这是我希望能回答我问题的线索。但这四个答案都解释了如何杀死整个应用程序

我怎样才能停止工作?比如说计数

我可以在Spark Web UI中通过单击相应作业上的“kill”来完成此操作。我认为必须能够列出正在运行的作业,并通过CLI直接与它们交互

实际上,我在一个笔记本上工作,在一个胶水端点上有PySpark。如果我杀死应用程序,整个端点都会死亡,我必须启动一个新集群。我只是想停止一项工作。在笔记本中取消它只会断开同步,作业将继续运行,阻止执行任何进一步的命令。

通过以下方式终止正在运行的作业:

  • 打开
    Spark
    应用程序界面
  • 转到
    作业
    选项卡
  • 正在运行的作业
    中查找
    作业
  • 单击
    kill
    链接并确认
  • 通过以下方式终止正在运行的作业:

  • 打开
    Spark
    应用程序界面
  • 转到
    作业
    选项卡
  • 正在运行的作业
    中查找
    作业
  • 单击
    kill
    链接并确认

  • 在linux中列出作业并将其杀死

    我愿意 ps-ef | grep spark提交 如果它是使用spark submit启动的。从输出中获取PID,然后
    kill-9

    在linux中列出作业并将其杀死

    我愿意 ps-ef | grep spark提交 如果它是使用spark submit启动的。从输出中获取PID,然后
    kill-9

    Spark历史服务器提供。不幸的是,它只公开应用程序、作业、阶段等的监视功能

    还有一个提供提交、终止和检查应用程序状态的功能。它是无文件记录的AFAIK,仅在Spark standalone和Mesos群集上受支持,没有纱线。(我想,这就是为什么Jobs UI屏幕上没有Spark on Thread的“kill”链接的原因。)

    因此,您可以尝试使用“隐藏”API,但如果您知道应用程序的Spark UI URL和要终止的作业的作业id,则更简单的方法是:

    $ curl -G http://<Spark-Application-UI-host:port>/jobs/job/kill/?id=<job_id>
    
    $curl-Ghttp:///jobs/job/kill/?id=
    

    由于我不使用胶水,我很想知道它会如何反应,因为杀死通常会导致
    org.apache.spark.SparkException:Job cancelled

    Spark历史记录服务器提供。不幸的是,它只公开应用程序、作业、阶段等的监视功能

    还有一个提供提交、终止和检查应用程序状态的功能。它是无文件记录的AFAIK,仅在Spark standalone和Mesos群集上受支持,没有纱线。(我想,这就是为什么Jobs UI屏幕上没有Spark on Thread的“kill”链接的原因。)

    因此,您可以尝试使用“隐藏”API,但如果您知道应用程序的Spark UI URL和要终止的作业的作业id,则更简单的方法是:

    $ curl -G http://<Spark-Application-UI-host:port>/jobs/job/kill/?id=<job_id>
    
    $curl-Ghttp:///jobs/job/kill/?id=
    
    由于我不使用胶水,我很想知道它会如何反应,因为杀死通常会导致
    org.apache.spark.SparkException:Job cancelled

    在回答的基础上,对于
    Spark 2.4.6
    standalone
    模式下,对于在
    client
    模式下提交的作业,终止具有已知应用程序ID的应用程序的curl请求是

    curl -d "id=<your_appID>&terminate=true" -X POST <your_spark_master_url>/app/kill/
    
    curl-d“id=&terminate=true”-X POST/app/kill/
    
    我们遇到了一个类似的问题,人们没有从集群断开笔记本电脑的连接,因此占用了资源

    我们通过解析webUI获得正在运行的应用程序列表。我很确定管理Spark群集的方法不会那么痛苦。

    基于以下答案,对于
    Spark 2.4.6
    独立模式下,对于在
    客户端
    模式下提交的作业,终止具有已知应用程序ID的应用程序的curl请求是

    curl -d "id=<your_appID>&terminate=true" -X POST <your_spark_master_url>/app/kill/
    
    curl-d“id=&terminate=true”-X POST/app/kill/
    
    我们遇到了一个类似的问题,人们没有从集群断开笔记本电脑的连接,因此占用了资源


    我们通过解析webUI获得正在运行的应用程序列表。我非常确定管理Spark群集没有那么痛苦的方法。

    我明确声明我知道这个选项并且我想使用CLI。我明确声明我知道这个选项并且我想使用CLI。使用curl会给我带来错误
    curl-G/app/kill/?id=&terminate=true
    =>
    错误405方法不允许
    使用curl会给我错误
    curl-G/app/kill/?id=&terminate=true
    =>
    错误405方法不允许