【问题标题】:What is 'Active Jobs' in Spark History Server Spark UI Jobs section什么是 Spark 历史服务器 Spark UI 作业部分中的“活动作业”
【发布时间】:2018-09-01 07:45:04
【问题描述】:

我正在尝试了解 Spark History 服务器组件。 我知道,历史服务器显示已完成的 Spark 应用程序。

不过,对于已完成的 Spark 应用程序,我看到“活动作业”设置为 1。我试图了解“工作”部分中的“活动工作”是什么意思。 此外,应用程序在 30 分钟内完成,但是当我在 8 小时后打开历史服务器时,“持续时间”显示 8.0h。 请看截图。

您能帮我理解上图中的“活动作业”、“持续时间”和“阶段:成功/总计”项目吗?

【问题讨论】:

    标签: apache-spark cloudera spark-ui


    【解决方案1】:

    经过一番研究,终于找到了我问题的答案。

    一个 Spark 应用程序由一个驱动程序和一个或多个执行程序组成。驱动程序实例化 SparkContext,它协调执行程序以运行 Spark 应用程序。此信息显示在 Spark History Server Web UI 的“Active Jobs”部分。

    执行器运行驱动程序分配的任务。

    当 Spark 应用程序在 YARN 上运行时,它有自己的纱线客户端和纱线应用程序主控实现。 YARN 应用程序有一个 yarn 客户端、yarn 应用程序主控器和在节点管理器上运行的容器列表。

    在我的例子中,Yarn 以独立模式运行,因此驱动程序作为 yarn 应用程序主线程的线程运行。 Yarn 客户端从 application master 拉取状态,application master 协调容器以运行任务。

    这个正在运行的作业可以在 Cloudera Manager 管理控制台的 YARN 应用程序页面中被监控,而它正在运行

    如果申请成功,则历史服务器将显示“已完成的作业”列表,并且“活动作业”部分将被删除

    如果应用程序在容器级别失败并且 YARN 将此信息传递给驱动程序,那么历史服务器将显示“失败的作业”列表以及“活动的作业”部分将被移除

    尽管如此,如果应用程序在容器级别失败并且 YARN 无法将其传达给驱动程序,那么驱动程序实例化的作业将进入遗忘状态。它认为作业仍在运行,并一直等待从 YARN 应用程序大师那里听到作业状态。因此,在 History Server 中,它仍然在“Active Jobs”中显示为running

    所以我的收获是: 要检查正在运行的作业的状态,请转到 Cloudera Manager 管理控制台中的 YARN 应用程序页面或使用 YARN CLI 命令。 作业完成/失败后,打开 Spark History Server 以获取有关资源使用情况、DAG 和执行时间线信息的更多详细信息。

    【讨论】:

    • 您能否最后分享一下您的工作是如何从 Spark UI 中删除的?
    【解决方案2】:

    在 Spark 应用程序中调用一个动作(在您的情况下计数是动作)会触发一个作业的启动来完成它。 Spark 检查该操作所依赖的数据集并制定执行计划。执行计划将数据集转换组装成阶段。

    阶段是执行计划的物理单元。简而言之,Stage 是一组并行任务,即每个分区一个任务。基本上,每个被分成更小的任务集的工作就是一个阶段。虽然,这完全取决于彼此。但是,它与 MapReduce 中的 map 和 reduce 阶段有些相同。

    每种 Spark Stages 的详细信息:

    一个。 Spark 中的 ShuffleMapStage ShuffleMapStage 被认为是 DAG 物理执行中的中间 Spark 阶段。 基本上,它为另一个阶段生成数据。 考虑 Spark 中的 ShuffleMapStage 作为阶段 DAG 中其他后续 Spark 阶段的输入。 但是,在 ShuffleMapStage 中可能存在 n 个多个管道操作。 像地图和过滤器,在洗牌操作之前。此外,我们可以在不同的作业之间共享一个 ShuffleMapStage。

    b. Spark 中的结果阶段 通过在 spark RDD Stage 上运行一个函数,在用户程序中执行 Spark 操作是一个 ResultStage。它被认为是 spark 的最后一个阶段。 ResultStage 意味着作为作业的最后阶段,它在 Spark 中的目标 RDD 的一个或多个分区上应用函数,有助于计算操作的结果。

    回到历史上活跃工作的问题,官方文档中列出了一些注释 如history server。同样存在关于同一链接的jira [SPARK-7889] 问题。 有关更多详细信息,请点击链接 source-1

    【讨论】:

    • 我读过 Jace Klaskowski 的博客,可以将失败/完成的工作联系起来。尽管如此,我仍然无法理解什么是“Active Jobs”符号。而且,需要对持续时间和阶段的解释:成功/总计。
    • 在您的回答中指向“活动工作”的内容是什么?我的问题是,当 Spark 应用程序已经完成时(因此显示在历史服务器中),为什么它仍然显示在“活动作业”中? “Active Jobs”的目的/含义是什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    相关资源
    最近更新 更多