创建EMR集群报:Invalid InstanceProfile 错误的原因和解决方法

Posted bluishglc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建EMR集群报:Invalid InstanceProfile 错误的原因和解决方法相关的知识,希望对你有一定的参考价值。

大多数情况下,在创建AWS的EMR集群时,在EC2 instance profile这一项, 我们一般使用默认的EMR_EC2_DefaultRole,如下图所示:


但有时候,我们需要根据需要,定制自己的EC2 Role和EC2 Instance Profile,如果这些EC2 Role和EC2 Instance Profile是通过命令行或CloudFormation创建的,那很大概率,你将在创建EMR集群时遇到如下错误:

排除Role和Profile本身的配置错误,引发这一问题的原因可能非常低级,但真得很难排查。

我们先来看一个通过控制台手动创建的EMR EC2的IAM Role:


这种从控制台创建的IAM Role,是可以被EMR接受并使用的。这里要提醒大家注意的是:它的InstanceProfile和Role是同名的

然而,当我们使用命令行或Cloudformation模板创建Role时,通常是下面这个样子:


通过CFN或CLI创建的Role,它的InstanceProfile和Role会自动添加随机后坠,这就使得两者不再同名,测试表明,EMR不能接受这样的Role作为EC2 Instance Profile!虽然这很愚蠢,但事实确实是这样!

找到问题的原因之后,解决方法也就简单了,我们需要显式地给Role和InstanceProfile指定名称,并使用同一个命名,就可以解决这一问题了,如下图所示:

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于创建EMR集群报:Invalid InstanceProfile 错误的原因和解决方法的主要内容,如果未能解决你的问题,请参考以下文章

创建EMR集群报:Invalid InstanceProfile 错误的原因和解决方法

EMR 集群:必须指定 MasterInstanceFleet 和 MasterInstanceGroup 之一

如何从“Terminated with errors Instance failure”状态恢复 EMR

让 EMR 集群在终止时终止其 EC2 实例

创建 EMR 集群时出错,EMR 服务角色无效

用于创建 EMR 集群的 Lambda 不会触发集群创建