Spark History Server Spark UI作业部分中的什么是“活动作业”

时间:2018-09-01 07:45:05

标签: apache-spark cloudera spark-ui

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

尽管如此,对于完整的Spark应用程序,我看到“活动作业”设置为1。我想了解“工作”部分中“有效工作”的含义。 此外,应用程序在30分钟内完成,但是当我在8小时后打开History Server时,“持续时间”显示为8.0h。 请查看屏幕截图。

enter image description here

能否请您帮助我理解上图中的“有效工作”,“持续时间”和“阶段:成功/总计”项目?

2 个答案:

答案 0 :(得分:0)

在Spark应用程序中

调用动作(在您的情况下,这就是您的动作)触发启动作业来完成该作业。 Spark检查该操作所依赖的数据集并制定执行计划。执行计划将数据集转换组装到各个阶段。

阶段是执行计划的物理单位。简而言之,阶段是一组并行任务,即每个分区一个任务。基本上,将每个工作分成较小的任务集是一个阶段。虽然,这完全是相互依赖的。但是,它与MapReduce中的map和reduce阶段有些相同。

每种火花阶段的详细信息:

a。 Spark中的ShuffleMapStage ShuffleMapStage被视为DAG物理执行中的中间Spark阶段。 基本上,它会为另一个阶段生成数据。 考虑将Spark中的ShuffleMapStage作为阶段DAG中其他后续Spark阶段的输入。  但是,在ShuffleMapStage中,可能有n个多重流水线操作。 如随机播放操作之前的地图和过滤器。此外,我们可以在不同的工作之间共享一个ShuffleMapStage。

b。 Spark中的ResultStage 通过在spark RDD阶段运行在用户程序中执行Spark动作的函数即为ResultStage,它被视为spark的最后阶段。 ResultStage意味着在作业的最后阶段,该功能将功能应用于Spark中目标RDD的一个或多个分区,有助于计算动作的结果。

回到历史上现职工作的问题,官方文档中列出了一些注释 与history server相同。此外,对于同一链接,还有jira [SPARK-7889]问题。 欲了解更多详情,请点击链接 source-1

答案 1 :(得分:0)

最后经过研究,找到了我的问题的答案。

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

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

当Spark应用程序在YARN上运行时,它具有自己的yarn客户程序和yarn应用程序主版本。 YARN应用程序具有一个纱线客户端,纱线应用程序主文件以及在节点管理器上运行的容器列表。

在我的情况下,Yarn以独立模式运行,因此驱动程序作为纱线应用程序主线程运行。 Yarn客户端从应用程序主机获取状态,应用程序主机协调容器以运行任务。

此正在运行的作业正在运行时,可以在Cloudera Manager管理控制台的YARN应用程序页面中进行监视。

如果应用程序成功,则“历史记录”服务器将显示“ 已完成作业”的列表,并且“ 活动作业”部分也将被删除

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

尽管如此,如果应用程序在容器级别失败,并且YARN无法将其传达给驱动程序,则驱动程序实例化作业将进入遗忘状态。它认为作业仍在运行,并一直在等待YARN应用程序主机通知作业状态。因此,在History Server中,它仍以 running 的形式显示在“ 活动作业”中。

所以我的看法是: 要检查运行作业的状态,请转到Cloudera Manager管理控制台中的YARN应用程序页面或使用YARN CLI命令。 作业完成/失败后,打开Spark历史记录服务器以获取有关资源使用,DAG和执行时间轴信息的更多详细信息。