使用自定义AMI时,AWS EMR配置失败

问题描述 投票:0回答:2

问题:我在云信息模板中定义了EMR集群(以及许多其他资源)。我使用AWS rest api来配置我的堆栈。它工作正常,我可以成功配置堆栈。

然后,我做了一个更改:我为我的EMR集群指定了一个自定义AMI。现在,当我配置堆栈时,EMR配置失败了。

由于EMR配置失败,现在我的堆栈创建失败了。我能找到的唯一信息是控制台上的错误:null: Error provisioning instances.。深入研究每个实例,我看到主节点因错误Status: Terminated. Last state change reason:Time out occurred during bootstrap而失败

我为我的EMR集群配置了s3日志,但s3存储桶中没有日志。

细节:

我更新了我的cloudformation脚本:my_stack.cfn.yaml:

rMyEmrCluster:
  Type: AWS::EMR::Cluster
  ...
  Properties:
    ...
    CustomAmiId: "ami-xxxxxx" # <-- I added this

自定义AMI详细信息:我正在添加自定义AMI,因为我需要加密所有节点上的根EBS卷。 (这是每个documentation所必需的)

我创建自定义AMI的步骤:

  1. 我启动了AWS用于EMR节点的基础AMI:emr 5.7.0-ami-roller-27 hvm ebs(ID:ami-8a5cb8f3
  2. 我从正在运行的实例中创建了一个图像
  3. 我创建了此映像的副本,并启用了EBS根卷加密。我使用默认加密密钥。 (我必须从正在运行的实例创建自己的基本映像,因为您不允许从您不拥有的AMI创建加密副本)

我想知道这可能是一个权限问题,或者我的AMI可能在某种程度上错误配置。但是,我首先要找到一些日志,以确切了解节点配置出了什么问题,这是谨慎的做法。

amazon-web-services amazon-ec2 amazon-emr ami
2个回答
0
投票

我觉得我好笨。我不小心使用了一个完全不相关的AMI(一个redhat 7图像)作为基本图像,而不是默认情况下EMR用于它的节点的AMI:emr 5.7.0-ami-roller-27 hvm ebs(ami-8a5cb8f3)

我会留下这个问题并回答以防其他人犯同样的错误。

确保从正确的基础AMI创建自定义AMI:emr 5.7.0-ami-roller-27 hvm ebs(ami-8a5cb8f3)


0
投票

您提到您基于EMR AMI创建了自定义AMI。但是,根据您链接的文档,您应该将AMI建立在“最新的EBS支持的Amazon Linux AMI”上。您的自定义AMI不需要基于EMR AMI,事实上我认为这样做可能会导致一些问题(尽管我自己没有尝试过)。

© www.soinside.com 2019 - 2024. All rights reserved.