EMR集群在AWS控制台UI上不可见

时间:2017-11-03 10:31:43

标签: java amazon-web-services apache-spark amazon-emr

我使用代码创建了一个群集:

> StepFactory stepFactory = new StepFactory();

            StepConfig enableDebugging = new StepConfig().withName("Enable Debugging")
                    .withActionOnFailure("TERMINATE_JOB_FLOW").withHadoopJarStep(stepFactory.newEnableDebuggingStep());


            Application spark = new Application().withName("Spark");

            RunJobFlowRequest createClusterParameters = new RunJobFlowRequest().withName("CreateDatamart")
                                            .withReleaseLabel("emr-5.5.0")
                                            .withSteps(enableDebugging)
                                            .withApplications(spark)
                                            .withLogUri("s3://logs/")
                                            .withServiceRole("EMR_DefaultRole")
                                            .withJobFlowRole("EMR_EC2_DefaultRole")
                                            .withInstances(new JobFlowInstancesConfig()
                                                    .withEc2KeyName("keypair")
                                                    .withInstanceCount(3)
                                                    .withKeepJobFlowAliveWhenNoSteps(false)
                                                    .withMasterInstanceType("m3.xlarge")
                                                    .withSlaveInstanceType("m3.xlarge"));

            RunJobFlowResult createCluster = emr.runJobFlow(createClusterParameters);

创建群集。附加的步骤也在运行。 但是,在AWS EMR UI中看不到集群。 我可以在EMR的Events选项卡下看到详细信息。 由于它位于“事件”选项卡下,因此无法在其他某个区域中创建它。 (虽然我也检查过) 在EC2控制台中,我可以看到为EMR创建的容器。

在另一种情况下,如果我直接从UI创建一个集群,它就是可见的。

代码是否有错误?

1 个答案:

答案 0 :(得分:3)

如果要向新群集添加IAM用户可见性,请致电RunJobFlow并将VisibleToAllUsers设置为true,否则IAM用户无法查看群集。

因此,您只需在创建群集之前添加以下行:

createClusterParameters.setVisibleToAllUsers(true);

注意:如果您使用 Python SDK 创建AWS Lambda,它是否相似:

response1 = emr.run_job_flow(
    Name=CLUSTER_NAME, # more properties [...]
    VisibleToAllUsers=True
)