权限错误 - Amazon EMR

权限错误

使用权限或凭证时常出现以下错误。

您将正确凭证传递给了 SSH 吗?

如果您不能使用 SSH 连接主节点,最有可能是您的安全凭证出了问题。

首先,检查并确保包含您 SSH 密钥的 .pem 文件有正确的权限。您可以使用 chmod 更改 .pem 文件上的权限,如以下示例所示,其中,要把 mykey.pem 替换为自己的 .pem 文件的名称。

chmod og-rwx mykey.pem

第二种可能性是,您没使用创建集群时指定的密钥对。如果您创建了多个密钥对,这种情况很容易出现。检查 Amazon EMR 控制台中的集群详细信息(或使用 CLI 中的 --describe 选项),并确保创建集群时指定的密钥对的名称无误。

验证您在使用正确的密钥对且 .pem 文件上的权限正确设置后,您可以使用以下命令通过 SSH 连接主节点,其中,要把 mykey.pem 替换为您个人 .pem 文件的名称,把 hadoop@ec2-01-001-001-1.compute-1.amazonaws.com 替换为主节点的公有 DNS 名称(通过 CLI 中的 --describe 选项或通过 Amazon EMR 控制台实现)。

重要

在连接到 Amazon EMR 集群节点时,必须使用登录名 hadoop,否则可能发生类似 Server refused our key 的错误。

ssh -i mykey.pem hadoop@ec2-01-001-001-1.compute-1.amazonaws.com

有关更多信息,请参阅使用 SSH 连接到主节点 (master node)

如果您在使用 IAM,您是否有正确的 Amazon EC2 策略设置?

因为 Amazon EMR 使用 EC2 实例作为节点,Amazon EMR 的 IAM 用户也需要设置某些 Amazon EC2 策略,以便 Amazon EMR 能代表 IAM 用户管理那些实例。如果您没有设置所需的权限,则 Amazon EMR 返回以下错误:“User account is not authorized to call EC2.”

有关您的 IAM 账户需要设置以运行 Amazon EMR 的 Amazon EC2 策略的更多信息,请参阅Amazon EMR 如何与 IAM 配合使用