2

在 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,并且还有其他限制。

4

2 回答 2

1

您可以直接通过 YARN Web UI 中的链接访问 Spark UI。从端口 8088 的 YARN Web UI 中,您可以单击“运行应用程序”,这应该会显示一个指向应用程序状态页面的链接。

如果您想用来callJMethod获取应用程序 ID,您可以使用类似SparkR:::callJMethod(SparkR:::callJMethod(sc, "sc"), "applicationId").

我们需要这个嵌套调用的原因sc是因为sc它是一个 JavaSparkContext 句柄,并且applicationId仅在 Scala SparkContext 中可用。

于 2015-07-01T02:45:33.300 回答
0

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

print(sparkR.conf("spark.app.id"))
于 2019-06-21T00:23:43.373 回答