【发布时间】:2018-08-18 16:58:53
【问题描述】:
当我在查看正在运行的 Spark 应用程序(我们的应用程序以客户端模式在 Hadoop/Yarn 集群上运行)时重新加载浏览器窗口时,我们的 Spark Web UI(从 Yarn UI 或 Spark History Server 访问时)不再更新。这曾经适用于 Spark 1.5.2,但在我们升级到 HDP 2.6.4(因此是 Spark 1.6.3 和 Spark 2.2.0)之后,我现在必须等待应用程序在 Web UI 更新之前完成(对于两者1.6.3 和 2.2.0)。
似乎当我第一次在 Spark Web UI 中查看应用程序时,我得到了当前状态。但之后刷新浏览器窗口不会显示任何更新。只有在应用程序完成后刷新浏览器才会显示任何更改。通常它会显示最终状态,但有时甚至不会显示。
Spark UI 示例截图:(我显然是在应用程序处于第 41 阶段时首次加载页面。在应用程序运行时刷新浏览器显示没有更新/更改。当应用程序完成时,重新加载浏览器显示最终状态 - -即,所有阶段都已完成。)
我们在 Ambari 中将 spark.history.fs.update.interval 设置为 10s,希望这可能是相关的。这似乎没有帮助。我查看了运行历史服务器的主节点,似乎 Ambari 更改被推出:
# pwd
/usr/hdp/current
# grep -R "spark.history.fs.update.interval" *
spark-client/conf/spark-defaults.conf:spark.history.fs.update.interval 10s
spark-historyserver/conf/spark-defaults.conf:spark.history.fs.update.interval 10s
spark-thriftserver/conf/spark-defaults.conf:spark.history.fs.update.interval 10s
另一个(我假设直接相关的)问题:在 Yarn/RM UI 中,单击“ApplicationMaster”链接以运行 Spark 应用程序只是挂起——Spark UI 不显示。 (我必须转到 Spark History 服务器 URL 以查看正在运行(“不完整”)的应用程序,然后从那里通过单击应用程序 ID 链接,我可以访问正在运行的应用程序的 Spark UI。但如上所述, Spark UI 不会在应用程序运行时更新应用程序状态。) Spark 应用程序完成后,在 RM UI 中单击该应用程序的“历史记录”链接会打开 Spark UI。
【问题讨论】:
-
你能附上一些截图吗?我们可能将“Spark web UI”用于两种不同的事情。
-
感谢@JacekLaskowski,我添加了未更新的 Spark Web UI 的屏幕截图。
-
对不起。不知道。我有更多的问题要建立对环境的更好理解,而不是答案,所以无济于事。我唯一的建议是坚持使用 Spark 2.2.0 并避免使用太旧而无法获得太多帮助的 1.6.3。
-
尝试通过 driver_ip:port 打开 Spark UI,它应该会很快更新信息。相反,Spark History Server 从 hdfs 读取 json 文件(驱动程序正在写入)并检查它是否每 10 秒更新一次并绘制新内容。
-
感谢@ArturSukhenko,这是一个很好的解决方法——当应用程序运行时,如果我打开 driver_ip:port,我可以通过刷新浏览器看到更新。
标签: apache-spark ambari