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

标签 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 的“事件”选项卡下看到详细信息。 由于它位于“事件”选项卡下,因此没有必要在其他地区创建它。 (虽然我也检查过) 在 EC2 控制台中,我可以看到为 EMR 创建的容器。

在其他情况下,如果我直接从 UI 创建集群,它是可见的。

代码有没有错误?

最佳答案

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

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

createClusterParameters.setVisibleToAllUsers(true);

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

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

关于java - EMR 集群在 AWS 控制台 UI 上不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47093600/

相关文章:

apache-spark - 为什么 insertInto 失败并显示 "assertion failed: No plan for InsertIntoTable"?

java - 无法使用 Java SocketFactory 库连接到 Cloud SQL

java - 无法使用 @Resource 使用 Oracle 和 Java 创建类错误的 JDBC 驱动程序

java - JTable 输入键

amazon-web-services - 如何从命令行找出当前实例的名称?

sql - DELETE 和 INSERT 后 Redshift (AWS) 上的 VACUUM

hadoop - 如何使用sqlContext加载多个parquet文件?

java - 如何向 Java Web 客户端应用程序显式添加参数?

java - 漂亮(抗锯齿)汉字显示

amazon-web-services - 如何在 Amazon S3 存储桶上设置公共(public)只读访问权限?