问题:我在云信息模板中定义了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的步骤:
emr 5.7.0-ami-roller-27 hvm ebs
(ID:ami-8a5cb8f3
)我想知道这可能是一个权限问题,或者我的AMI可能在某种程度上错误配置。但是,我首先要找到一些日志,以确切了解节点配置出了什么问题,这是谨慎的做法。
我觉得我好笨。我不小心使用了一个完全不相关的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)
您提到您基于EMR AMI创建了自定义AMI。但是,根据您链接的文档,您应该将AMI建立在“最新的EBS支持的Amazon Linux AMI”上。您的自定义AMI不需要基于EMR AMI,事实上我认为这样做可能会导致一些问题(尽管我自己没有尝试过)。