如何在 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()