如何在 java sdk v2 中向 运行 EMR 集群提交新步骤
How to submit a new step to a running EMR cluster in java sdk v2
我正在尝试使用 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 之间的术语有点不同。 cluster == job flow in this case 所以我需要用它来指向正确的集群:
val stepRequest = AddJobFlowStepsRequest.builder()
.steps(stepConfig)
.jobFlowId("JOB FLOW ID") //here
.build()
我正在尝试使用 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 之间的术语有点不同。 cluster == job flow in this case 所以我需要用它来指向正确的集群:
val stepRequest = AddJobFlowStepsRequest.builder()
.steps(stepConfig)
.jobFlowId("JOB FLOW ID") //here
.build()