【问题标题】:How to get all jobs status via Spark Hidden Rest API如何通过 Spark Hidden Rest API 获取所有作业状态
【发布时间】:2017-01-17 16:24:31
【问题描述】:

我使用的是 spark 1.6.2,并且我使用的是隐藏的 REST API (http://arturmkrtchyan.com/apache-spark-hidden-rest-api)。

如何在一个休息电话中获取所有作业状态,而不是为每个作业使用它 - http://spark-cluster-ip:6066/v1/submissions/status/driver-20151008145126-0000

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    根据您的具体需要,您可以使用 :8080/json 来获取代表所有应用程序的 json。您应该看到一个 activeapps 数组,其中包含有关每个应用程序的简短信息(包括其状态,例如正在运行):

    例如,如果我打开 spark-shell,我会在 json 中得到以下字段:

    "memoryused" : 82944,
      "activeapps" : [ {
        "starttime" : 1484638046648,
        "id" : "app-20170117022726-0113",
        "name" : "Spark shell",
        "cores" : 60,
        "user" : "assaf",
        "memoryperslave" : 27648,
        "submitdate" : "Tue Jan 17 02:27:26 EST 2017",
        "state" : "RUNNING",
        "duration" : 26954
      } ],
    

    请注意,这基本上是将/json添加到UI端口而不是提交端口。

    【讨论】:

    • 我需要的是获取作业状态,最好不要每次都获取所有作业,而只获取增量 -> 按时间戳或提交 ID 列表
    • 你能扩展吗?我以为你想把所有工作都放在一起?以上为您提供了当前在集群上运行的所有作业及其所有信息。你能提供一个你正在寻找的例子吗?
    • 我想管理我执行的作业,例如,在当前完成之前不执行另一个事件,所以我想检查作业状态。您提到的 API 返回了“正在运行的驱动程序”中的作业,但我也想知道作业是否已完成。如果在请求 spark-master:8081/json 时,工作转移到“已完成的驱动程序”,我无法获得有关它的信息。我想获取所有提交 id 的第一阶段状态,最好是使用过滤器获取它(但让我们开始简单)
    • 我不认为你可以通过一个调用来做到这一点,但如果你启用历史服务器,你可以进行两次调用:第一个如上所述获取正在运行的应用程序,第二个通过历史服务器 REST api来完成工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 2016-03-17
    相关资源
    最近更新 更多