scala - 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 作业的相关阶段进展的首选方法是什么?
解决方案
推荐阅读
- flutter - Flutter 无法删除“build\flutter_assets”中的目录
- pine-script - 如何分配上一个蜡烛并在下方绘制一个点
- r - 如何在 echarts4r 上自定义日期格式?
- angular - 如何在 Angular 中构建可自定义的表单
- api - Snapchat API 用户身份验证 VIA 重定向
- java - 多线程中的 Guice 拦截器绑定
- jquery - 从滑块读取属性值,更改按钮类
- c# - for循环运行后文本框和标签不会显示
- android - 单击时如何在矩阵中获取对象
- python - 是我的熊猫索引日期时间 dtype 还是对象 dtype