Apache Spark Web UI 中的“Stage Skipped”是啥意思?

Posted

技术标签:

【中文标题】Apache Spark Web UI 中的“Stage Skipped”是啥意思?【英文标题】:What does "Stage Skipped" mean in Apache Spark web UI?Apache Spark Web UI 中的“Stage Skipped”是什么意思? 【发布时间】:2016-01-03 19:26:29 【问题描述】:

来自我的 Spark UI。跳过是什么意思?

【问题讨论】:

【参考方案1】:

通常这意味着数据已从缓存中获取,无需重新执行给定阶段。它与您的 DAG 一致,表明下一阶段需要改组 (reduceByKey)。每当涉及洗牌时,Spark automatically caches generated data:

Shuffle 还会在磁盘上生成大量中间文件。从 Spark 1.3 开始,这些文件会一直保留到相应的 RDD 不再使用并被垃圾回收。这样做是为了在重新计算血统时不需要重新创建 shuffle 文件。

【讨论】:

很好的答案。如果您想了解更多关于 Web UI 上“已跳过”和“待定”阶段语义的方式,请查看github.com/apache/spark/pull/3009,这是首次引入这些概念的拉取请求。如果您对跳过/未决阶段如何与作业级进度条交互感到好奇,那么该 PR 也是一本有趣的读物。 如果我遵循正确,Spark 跳过这些意味着它们不会发生,它们可以一起从代码中删除?或者代码对缓存非常有效,所以离开它? @zero323 @SparkleGoat 没有。表示这些阶段之前已经评估过了,无需重新执行即可获得结果。 另一个问题,缓存和跳过阶段可以使输出数据不同吗? @SparkleGoat,无缓存(并因此而跳过)是一种内部 spark 优化,不会以任何方式更改输出数据。【参考方案2】:

假设您有一个包含一些数据的初始数据框。现在您在它之上执行几个转换并对最终数据帧执行多个操作。如果您缓存了一个数据框,那么它会在您调用操作时将其物化并以物化形式将其保存在内存中。因此,当调用下一个操作时,它将遍历整个 DAG,并且在此过程中,它将看到数据帧已被缓存,因此它将通过利用它在内存中以物化形式具有的已经就绪状态来跳过这些阶段。

当它跳过阶段时,您会在 spark UI 中看到它已跳过,它会加快您的操作,因为它不必从根计算 dag,并且可以在缓存数据帧之后开始其操作。

【讨论】:

以上是关于Apache Spark Web UI 中的“Stage Skipped”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

spark master web ui 能看到些啥信息

从作业实际运行的其他位置访问 Spark Web UI

spark web ui怎么使用

第一个spark程序

Spark Web UI 监控详解

spark web ui