为什么我的 Spark 应用程序的 Web UI 不显示 DAG 可视化,但 History Server 却显示?

Alg*_*man 5 apache-spark

我目前正在使用 IntelliJ IDEA 来开发和运行我的 Spark 应用程序。我已将其设置为conf/spark-defaults.conf

spark.eventLog.enabled           true
spark.eventLog.dir               file:/home/user/spark-2.2.0/spark-events
spark.history.fs.logDirectory    file:/home/user/spark-2.2.0/spark-events
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我也有这个:

val session = SparkSession.builder()
    .appName("MySparkApp")
    .master("spark://user:7077")
    .config("spark.jars", "target/mysparkapp.jar")
    .config("spark.eventLog.enabled","true")
    .config("spark.eventLog.dir","file:/home/user/spark-2.2.0/spark-events")
    .config("spark.history.fs.logDirectory","file:/home/user/spark-2.2.0/spark-events")
    .getOrCreate()
Run Code Online (Sandbox Code Playgroud)

应用程序完成后,我可以在 Spark History Server 中看到 DAG 可视化。但是,spark web ui 中没有显示 DAG 可视化。知道为什么会这样吗?

我正在使用 Ubuntu 57.0.1(64 位)的 Mozilla Firefox。这是我的历史服务器的屏幕截图:

在此输入图像描述

我的网络用户界面:

在此输入图像描述

Jac*_*ski 2

TL;DR在 4040 使用 Spark 应用程序的 Web UI(不是 Spark Standalone 的 Web UI)

您使用 Spark Standalone(从 来看.master("spark://user:7077")),屏幕截图来自您可能访问过的 Spark Standalone 的 Web UI http://user:8080(用于user中代码中的主机名master)。

localhost:8080从未显示过任何 Spark 应用程序的 DAG 可视化。它一直用于 Spark Standalone 的 Web UI。您可以改为使用localhost:18080,即与1before一起使用8080

Spark 应用程序的 Web UI(您可以在其中找到 DAG 可视化)默认在 4040 上可用(或以下端口,如果已占用)。但这取决于集群部署环境和部署模式。

同样重要的是,它localhost:4040仅在 Spark 应用程序启动并运行时才可用。Spark 应用程序完成后,Web UI 就消失了并且无法再访问。