首页 > 解决方案 > YARN 上的 Spark 2.3.1:如何以编程方式监控阶段进度?

问题描述

我有一个在 YARN 上运行 Spark 的设置,我的目标是通过应用程序 ID 以编程方式获取 Spark 作业的进度更新。

我的第一个想法是解析 YARN GUI 的 HTML 输出。然而,这种 GUI 的问题在于,与 spark 作业相关的进度条不会定期更新,甚至大部分时间都不会改变:当作业开始时,百分比大约是 10%,然后卡住了到这个值,直到工作完成。所以这样的 YARN 进度条与 Spark Jobs 无关。

当我单击与 Spark 作业对应的 Application Master 链接时,我被重定向到在作业运行期间临时绑定的 Spark GUI。阶段页面与 Spark 作业的进度非常相关。但是它是纯 HTML,因此解析起来很痛苦。在 Spark 文档中,他们谈到了 JSON API,但是我似乎无法访问它,因为我在 YARN 下并且我正在通过 YARN 代理页面访问 Spark GUI。

可能是一个解决方案,为了访问更多的东西,可能是访问真正的 Spark GUI ip:port,而不是 YARN 代理的,但我不知道我是否可以轻松获得这样的源 URL。 .

所有这些听起来很复杂,只是让 Spark 作业取得进展......截至 2018 年,您能否告诉我们在 YARN 上运行 Spark 作业的相关阶段进展的首选方法是什么?

标签: scalaapache-sparkhadoophadoop-yarn

解决方案



推荐阅读