创建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指定名称,并使用同一个命名,就可以解决这一问题了,如下图所示:
以上是关于创建EMR集群报:Invalid InstanceProfile 错误的原因和解决方法的主要内容,如果未能解决你的问题,请参考以下文章
创建EMR集群报:Invalid InstanceProfile 错误的原因和解决方法
EMR 集群:必须指定 MasterInstanceFleet 和 MasterInstanceGroup 之一