未显示使用CloudFormation创建的EMR群集

时间:2018-04-23 05:36:21

标签: amazon-web-services amazon-cloudformation emr amazon-emr

我已将EMR群集添加到堆栈中。成功更新堆栈(CloudFormation)后,我可以看到EC2控制台中的主节点和从节点,我可以通过SSH连接到主节点。但AWS控制台不显示新群集。即使aws emr list-clusters也没有显示群集。我对该地区进行了三次检查,我确信我正在查看正确的地区。

相关的CloudFormation JSON:

"Spark01EmrCluster": {
  "Type": "AWS::EMR::Cluster",
  "Properties": {
    "Name": "Spark01EmrCluster",
    "Applications": [
      {
        "Name": "Spark"
      },
      {
        "Name": "Ganglia"
      },
      {
        "Name": "Zeppelin"
      }
    ],
    "Instances": {
      "Ec2KeyName": {"Ref": "KeyName"},
      "Ec2SubnetId": {"Ref": "PublicSubnetId"},
      "MasterInstanceGroup": {
        "InstanceCount": 1,
        "InstanceType": "m4.large",
        "Name": "Master"
      },
      "CoreInstanceGroup": {
        "InstanceCount": 1,
        "InstanceType": "m4.large",
        "Name": "Core"
      }
    },
    "Configurations": [
      {
        "Classification": "spark-env",
        "Configurations": [
          {
            "Classification": "export",
            "ConfigurationProperties": {
              "PYSPARK_PYTHON": "/usr/bin/python3"
            }
          }
        ]
      }
    ],
    "BootstrapActions": [
      {
        "Name": "InstallPipPackages",
        "ScriptBootstrapAction": {
          "Path": "[S3 PATH]"
        }
      }
    ],
    "JobFlowRole": {"Ref": "Spark01InstanceProfile"},
    "ServiceRole": "MyStackEmrDefaultRole",
    "ReleaseLabel": "emr-5.13.0"
  }
}

1 个答案:

答案 0 :(得分:1)

原因是缺少VisibleToAllUsers属性,默认为false。由于我使用的是AWS Vault(即使用STS AssumeRole API进行身份验证),我每次都基本上是一个不同的用户,因此我无法看到群集。当我得到VisibleToAllUsers时,我无法更新堆栈以添加Job flow ID does not exist

解决方案是以root用户身份登录并从那里修复内容(我必须手动删除集群,但是如果我没有弄乱事物,那么将其从堆栈模板JSON中删除并更新堆栈可能会有效已经)。

然后我将群集添加回模板(VisibleToAllUsers设置为true)并像往常一样更新堆栈(AWS Vault)。