首页 > 解决方案 > Spark UI -> SQL 选项卡不显示所有(旧)阶段

问题描述

我正在执行一个有很多阶段(〜150)的火花(sql)作业。它主要是在内部框架内使用 spark-sql 编写的,该框架使用临时视图和数据框链接 SQL。对于初始中间表写入,我可以在 Spark UI -> SQL 选项卡中看到详细视图。但是对于后面的表格写入,SQL 选项卡只显示以下形式的 UI。

这是什么原因,我可以使用任何参数在 SQL 选项卡中获取详细的图形视图吗?

我的火花版本:2.3

编辑:2020 年 1 月 17 日 我发现了一个 JIRA https://issues.apache.org/jira/browse/SPARK-30064,但我不确定它是否相关,因为它提到了我没有使用的 jdbc 数据源。

在此处输入图像描述

标签: apache-sparkapache-spark-sqlspark-ui

解决方案


查看https://spark.apache.org/docs/2.3.4/configuration.html#spark-ui 特别是我怀疑这个问题你可能有 spark.ui.retainedStages(默认 1000)和/或spark.ui.retainedTasks(默认 100k)设置得太低。

如果您的作业有 150 个阶段,例如,每个阶段平均有 1000 个任务,那么您的整个作业将有 150*1000 = 150k 个任务,这超出了默认的 100k 限制。因此,您不会在 Spark UI 中看到那些较旧的任务/阶段等。

附言。同样对于具有如此多阶段的 Spark(例如,当您有大量数据帧等以迭代方式链接时),我们经常发现创建检查点有很大帮助。例如,您可以checkpoint例如每 20-50 次迭代(如果有一个循环创建了巨大的血统;使用最适合您的情况的数字),因此您基本上将具有 150 个阶段的庞大工作分成 20- 50个阶段。Spark Optimizer 可能很难通过 150 个数据帧的 DAG 来创建最佳计划等。

https://jaceklaskowski.gitbooks.io/mastering-spark-sql/spark-sql-checkpointing.html


推荐阅读