从SparkR获取应用程序ID以创建Spark UI URL

时间:2015-06-30 15:06:27

标签: apache-spark yarn sparkr

在SparkR shell中,我想生成一个链接,以便在Yarn模式下查看Spark UI。通常情况下,Spark UI位于端口4040,但在Yarn模式下,它显然与[host]:9046/proxy/application_1234567890123_0001/类似,其中路径的最后一部分是唯一的applicationId。

其他SO答案显示了如何获取ScalaPython shell的applicationID。我们如何从SparkR获取applicationID?

作为黑暗中的刺,我尝试了SparkR:::callJMethod(sc, "applicationId"),但它没有用。

我也尝试了system("yarn application -list")的内容,但这似乎不适用于RStudio并且有其他限制。

2 个答案:

答案 0 :(得分:2)

您可以直接关注YARN Web UI中的链接以访问Spark UI。从端口8088的YARN Web UI,您可以单击“正在运行的应用程序”,这将显示指向“应用程序状态”页面的链接。

如果您想使用.ui-btn::after { background-size: 32px !important; width: 32px !important; height: 32px !important; } 获取应用程序ID,可以使用callJMethod之类的内容。

我们需要对SparkR:::callJMethod(SparkR:::callJMethod(sc, "sc"), "applicationId")进行嵌套调用的原因是因为sc是一个JavaSparkContext句柄,sc仅在Scala SparkContext中可用。

答案 1 :(得分:0)

创建Spark会话后,您可以执行以下操作以获取Spark应用程序ID。

print(sparkR.conf("spark.app.id"))