gpt4 book ai didi

scala - Spark 应用程序中的作业总数

转载 作者:行者123 更新时间:2023-12-02 04:43:07 24 4
gpt4 key购买 nike

我已经看到这个问题 How to implement custom job listener/tracker in Spark?并检查了源代码以了解如何获取每个作业的阶段数,但有没有办法以编程方式跟踪在 Spark 应用程序中完成的作业百分比?

我可能可以通过监听器获得已完成的作业数量,但我错过了将运行的作业总数。

我想跟踪整个应用程序的进度,它创造了很多工作,但我无法在任何地方找到它。

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

  • 我宁愿不使用 REST,而是在应用程序本身中获取它(在 AWS EMR/Yarn 上运行的 Spark - 获取地址可能是可行的,但我不想这样做)
  • 该 REST 端点似乎只返回正在运行/已完成/失败的作业,因此不是作业总数。
  • 最佳答案

    在稍微浏览了源代码之后,我想没有办法预先看到会有多少作业,因为我找不到 Spark 会预先进行此类分析的任何地方(因为作业是在每个操作中独立提交的 Spark 没有)从一开始就没有对所有工作有一个全面的了解)。

    由于 Spark 将工作分为以下几个部分,因此这种方式是有道理的:

  • 工作机会 - 只要在驱动程序节点上运行的代码遇到 就会启动行动 (即 collect()take() 等)并且应该计算一个值并将其返回给驱动程序
  • 阶段 - 由 的序列组成任务之间不需要数据混洗
  • 任务 - 可以在工作节点上并行运行的相同类型的计算

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

    关于scala - Spark 应用程序中的作业总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35771947/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com