脚本:
我正在aws emr中运行spark scala作业。现在,我的工作将转储该应用程序特有的一些元数据。现在我在applicationid所在的位置“s3://bucket/key/<application\u id>”写下转储 val APPLICATION_ID: String = getSparkSession.sparkContext.getConf.getAppId
现在基本上有一种方法可以在s3位置写入类似于“s3://bucket/key/<emr\u cluster\u id>”、“emr\u step\u id>”的内容。如何从sparkscala应用程序内部获取集群id和步骤id。
以这种方式编写将帮助我调试并帮助我访问基于集群的日志并调试日志。
除了读取“/mnt/var/lib/info/job flow.json”,还有其他方法吗?
ps:我对spark、scala和emr都是新手。如果这是一个明显的疑问,请提前道歉。
2条答案
按热度按时间jm2pwxwz1#
最近我在通过编程获取集群id时遇到了同样的问题。最后使用emrclient的listclusters()方法。
您可以使用javasdkforaws或其上的scala Package 器来使用此方法。
qfe3c7zg2#
在a.b的答案的基础上,您可以将cluster id传递给liststeps方法,以获得步骤id的列表,如下所示: