Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Spark应用程序中的作业总数_Scala_Apache Spark - Fatal编程技术网

Scala Spark应用程序中的作业总数

Scala Spark应用程序中的作业总数,scala,apache-spark,Scala,Apache Spark,我已经看到了这个问题,并检查了源代码,以了解如何获得每个作业的阶段数,但是有没有办法通过编程跟踪Spark应用程序中完成的作业的百分比 我可能可以通过侦听器获得已完成作业的数量,但我缺少将运行的作业总数 我想跟踪整个应用程序的进度,它创造了不少就业机会,但我在任何地方都找不到 @编辑:我知道有一个REST端点可以获取应用程序中的所有作业,但是: 我宁愿不使用REST,而是在应用程序本身中使用它(spark在AWS EMR/Thread上运行-获取地址可能是可行的,但我宁愿不这样做) REST端点

我已经看到了这个问题,并检查了源代码,以了解如何获得每个作业的阶段数,但是有没有办法通过编程跟踪Spark应用程序中完成的作业的百分比

我可能可以通过侦听器获得已完成作业的数量,但我缺少将运行的作业总数

我想跟踪整个应用程序的进度,它创造了不少就业机会,但我在任何地方都找不到

@编辑:我知道有一个REST端点可以获取应用程序中的所有作业,但是:

  • 我宁愿不使用REST,而是在应用程序本身中使用它(spark在AWS EMR/Thread上运行-获取地址可能是可行的,但我宁愿不这样做)
  • REST端点似乎只返回正在运行/完成/失败的作业,因此不返回作业总数
    在浏览了一段源代码之后,我想没有办法提前看到会有多少个作业,因为我找不到Spark会提前进行此类分析的任何地方(因为作业在每个操作中都是独立提交的Spark从一开始就没有所有作业的大图)

    因为Spark是如何将工作分为以下几部分的,所以这种方法是有意义的:

    • 作业-每当在驱动程序节点上运行的代码遇到操作时启动作业(即
      collect()
      take()
      等),作业应计算值并将其返回给驱动程序
    • 阶段-由任务序列组成,其间不需要数据洗牌
    • 任务-可以在工作节点上并行运行的相同类型的计算

    因此,我们确实需要预先了解单个作业的阶段和任务,以创建DAG,但我们不一定需要创建一个DAG的作业,我们只需“边做边做”即可创建它们。

    用户界面中有它:@avihoomaka我需要以某种方式通过编程获得它,我的用户没有访问该UI的权限,因此我需要在我的应用程序中显示进度尝试以下内容:对,我知道REST API,但由于我正在AWS EMR上部署它,因此获取URL是一件痛苦的事情,我更愿意在我的spark工作中使用它,并从中ping我的应用程序。正在尝试查找Sparks Web服务器代码以查看它们如何获得作业列表:-)