从eclipse向amazon EMR上的正在运行的集群提交作业

时间:2015-08-14 17:01:45

标签: java eclipse amazon-web-services amazon-emr

我想在eclipse中将我的java代码中的作业添加到正在运行的EMR集群中,以节省启动时间(创建ec2,bootstrapping ......)。

我知道如何从java代码运行一个新集群,但是在完成所有工作后它就会终止。

RunJobFlowRequest runFlowRequest = new RunJobFlowRequest()
        .withName("Some name")
        .withInstances(instances)
        // .withBootstrapActions(bootstrapActions)
        .withJobFlowRole("EMR_EC2_DefaultRole")
        .withServiceRole("EMR_DefaultRole")
        .withSteps(firstJobStep, secondJobStep, thirdJobStep)
        .withLogUri("s3n://path/to/logs");

// Run the jobs
RunJobFlowResult runJobFlowResult = mapReduce
        .runJobFlow(runFlowRequest);
String jobFlowId = runJobFlowResult.getJobFlowId();

1 个答案:

答案 0 :(得分:1)

您必须将KeepJobFlowAliveWhenNoSteps参数设置为TRUE,否则在执行所有步骤后群集将被终止。如果设置了此属性,则在执行所有步骤后,群集将继续处于等待状态。

.withKeepJobFlowAliveWhenNoSteps(true)添加到现有代码中。

有关详细信息,请参阅此doc