我正在关注official docs guide编写Scala脚本,以便使用AWS Java SDK启动EMR集群。我能够确定这里需要的3个主要步骤:
我使用AmazonElasticMapReduceClientBuilder.defaultClient()
我创建了一个RunJobFlowRequest
对象,并为其提供JobFlowInstancesConfig
(两个对象都根据要求提供了适当的参数)
通过调用emrClient.runJobFlow(runJobFlowRequest)
返回RunJobFlowResult
对象
但是RunJobFlowResult对象没有提供关于集群是否成功启动的任何线索(使用所有给定的配置)
现在我知道emrClient
的{{3}}方法可以用来获取新启动的集群的集群ID,通过它我们可以使用{{3}查询集群的状态打电话。但是,由于我使用Scala脚本来执行所有这些操作,因此我需要将流程自动化(此处查找getClusters()
结果中的群集ID必须手动完成)
有什么办法可以实现吗?
答案 0 :(得分:3)
你有所有的东西,但没有把它们拼接在一起。
可以从RunJobFlowResult.getJobFlowId()中检索集群的id。 (它是以“j-”开头的字符串。)然后,您可以将此jobFlowId传递给DescribeCluster。
我不会因为你的困惑而责怪你,因为对于某些方法(主要是较旧的API方法)和其他方法中的“clusterId”,它被称为“jobFlowId”。他们真的是一样的。