hadoop yarn-从SparkR获取应用程序ID以创建Spark UI url



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

其他SO答案显示了如何获得Scala和Python shell的applicationID。我们如何从SparkR获取应用程序ID?

我尝试了SparkR:::callJMethod(sc, "applicationId"),但没有成功。

我也尝试了一些类似system("yarn application -list")的东西,但RStudio似乎不起作用,还有其他限制。

您可以直接按照YARN web UI中的链接进入Spark UI。从8088端口的YARN web UI中,您可以单击"运行应用程序",这将显示应用程序状态页面的链接。

如果您想使用callJMethod来获取应用程序id,您可以使用类似SparkR:::callJMethod(SparkR:::callJMethod(sc, "sc"), "applicationId")的东西。

我们之所以需要对sc进行嵌套调用,是因为sc是JavaSparkContext句柄,而applicationId仅在Scala SparkContext中可用。

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

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

相关内容

  • 没有找到相关文章

最新更新