如何在 java 开发工具包 v2 中向正在运行的 EMR 集群提交新步骤



我正在尝试使用java sdk v2将HadoopJarStep提交到正在运行的EMR集群。通过阅读 api 文档/示例,我似乎无法弄清楚如何引用正在运行的集群而不是启动一个新集群。

任何人都可以指出正确的构建器方法来指定要提交到的现有集群吗?到目前为止,我拥有的 Scala 代码:

val emr = EmrClient
.builder()
.build()       
val stepArgs = Seq("foo", "bar", "baz")
val jarStepConfig = HadoopJarStepConfig.builder()
.jar("s3://reveal-ci/deploy/emr/visit-etl.jar")
.args(stepArgs: _*)
.mainClass("com.revealmobile.visit.etl.Application")
.build()
val stepConfig = Seq(
StepConfig.builder()
.hadoopJarStep(jarStepConfig)
.build()
).asJavaCollection
val stepRequest = AddJobFlowStepsRequest.builder()
.steps(stepConfig)
.jobFlowId("JOB FLOW ID")
.build()
val result = Try(emr.addJobFlowSteps(stepRequest)) // I never specified which cluster?
result match {
case Success(_) => info("The step was added successfully")
case Failure(exception) =>
error(exception.getMessage)
throw (exception)
}

我最终发现 CLI 和 SDK 之间的术语略有不同。 在这种情况下,集群 == 作业流,所以我需要使用它来指向正确的集群:

val stepRequest = AddJobFlowStepsRequest.builder()
.steps(stepConfig)
.jobFlowId("JOB FLOW ID") //here 
.build()

最新更新