EMR 集群预置失败 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

EMR 集群预置失败

Amazon EMR 集群启动失败的原因有多种。以下是诊断问题的几种方式。

检查 EMR 调配日志

Amazon EMR 使用 Puppet 在集群上安装和配置应用程序。查看日志将提供有关在集群的配置阶段是否存在任何错误的详细信息。如果日志被配置为推送到 S3,则可以在集群或 S3 上访问日志。

日志存储在磁盘上的 /var/log/provision-node/apps-phase/0/{UUID}/puppet.logs3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/provision-node/apps-phase/0/{UUID}/puppet.log.gz.

常见错误消息

错误消息 原因

Puppet(err):系统启动失败了! emr-record-server journalctl 日志:emr-record-server

EMR 记录服务器启动失败。请参阅下面的 EMR 记录服务器日志。

Puppet(err):系统启动失败了! emr-record-server emrsecretagent 的 journalctl 日志

EMR SecretAgent 启动失败。请参阅下面的检查 SecretAgent 日志。

/Stage[main]/Ranger_plugins::Ranger_hive_plugin/Ranger_plugins::Prepare_two_way_tls[configure 2-way TLS in Hive plugin]/Exec[create keystore and truststore for Ranger Hive plugin]/returns (notice): 140408606197664:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:707:Expecting: ANY PRIVATE KEY

Secrets Manager 中用于 Apache Ranger 插件凭证的私有 TLS 凭证格式不正确或不是私有凭证。请参阅 TLS 凭证 了解凭证格式。

/Stage [main] /ranger_Plugins:: ranger_s3_plugin/ranger_Plugins:: prepare_two_way_tls [在 Ranger s3 插件中配置双向 TLS] /Exec [为 Ranger amazon-emr-s 3 插件创建密钥库和信任库] /returns(注意):调用操作时出现错误 ():用户:arn: aws: sts:: xxxxxxxxxx: assusuxxxxx: assuSUXXXX: assuSusts med-role/emr_ec2_ /i-xxxxxxxxxxxx 无权在资源上执行:secretsmanager:arn: aws: secretsManager: us-east-1:xxxxxxxxx: secretxxxx: secretsXXXX: SecretsXXXX: s AccessDeniedException GetSecretValue DefaultRole GetSecretValue AdminServer

EC2 实例配置文件角色没有从 Secrets Agent 检索 TLS 凭证的权限。

查看 SecretAgent 日志

SecretAgent 日志位于 EMR 节点上的 /emr/secretagent/log/ 中,或位于 S3 中的 s3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/daemons/secretagent/ 目录中。

常见错误消息

错误消息 原因

话题 “主” com.amazonaws.services.securitytoken.model 出现异常。 AWSSecurityTokenServiceException: 用户:arn: aws: sts:: xxxxxxxxxxxxxx: assumed-role/emr_ec2_ /i-xxxxxxxxxxxxxxxx无权在资源上执行:sts:arn: aws: iam:: xxxxxxxxxxxxxxxxx: role/*(服务:;状态码:403;错误代码:;请求编号:xxxxxxxx-xxxxxxx-xxxxx DefaultRole x-*(服务:;状态码:403;错误代码:;请求编号:xxxxxxxx-xxxxxx-xxxxxxxx XXXXX-XXXXXXXXXXXX;代理:空)AssumeRole RangerPluginDataAccessRole AWSSecurityTokenService AccessDenied

上述例外情况意味着 EMR EC2 实例配置文件角色无权担任该角色。RangerPluginDataAccessRole请参阅 用于与 Apache Ranger 本地集成的 IAM 角色

ERROR qtp54617902-149: Web App Exception Occurred

javax.ws.rs。 NotAllowedException: 不允许使用 HTTP 405 方法

这些错误可以忽略。

检查记录服务器日志(适用于 SparkSQL)

<CLUSTER ID><EC2 INSTANCE ID>EMR Record Server 日志位于 EMR 节点上的 /var/logemr-record-server/,也可以在 S3 的 s3: ////node/ /daemons<LOG LOCATION>//目录中找到。emr-record-server

常见错误消息

错误消息 原因

InstanceMetadataServiceResourceFetcher:105-[] 无法检索令牌 com.am azonaws。 SdkClientException: 无法连接到服务端点

EMR SecretAgent 未能出现或出现问题。检查 SecretAgent 日志中是否存在错误,并检查 puppet 脚本以确定是否存在任何配置错误。