View a markdown version of this page

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.log 和 s3://<LOG LOCATION>/<CLUSTER ID>/node/<EC2 INSTANCE ID>/provision-node/apps-phase/0/{UUID}/puppet.log.gz.

常见错误消息

错误消息 原因

Puppet (err): Systemd start for emr-record-server failed! journalctl log for emr-record-server:

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

Puppet (err): Systemd start for emr-record-server failed! journalctl log for emrsecretagent:

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

/Stage [main]/Ranger_plugins::Ranger_hive_plugin/Ranger_plugins: [在 Hive 插件中配置双向 TLS] /Exec Prepare_two_way_tls [为 Ranger Hive 插件创建密钥库和信任库] /返回(通知):140408606197664:错误:0906 例程:pem_read_bio: 无起跑线:PEM_lib.c: 707: 期待:任何私钥 D06C:PEM

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

/Stage [main]/Ranger_plugins::Ranger_s3_plugin/Ranger_plugins: [在 Ranger s3 插件中配置双向 TLS] /Exec Prepare_two_way_tls [为 Ranger amazon-emr-s3 插件创建密钥库和信任库] /返回(注意):调用 GetSecretValue 操作时出错(AccessDeniedException):用户:arn: aws: sts::-XXXXXXXXXXX 无权执行:secretsmanager: on 资源:arn: aws: secretsmanager: us-east-1:XXXXXXXXXXX:assumed-role/EMR_EC2_DefaultRole/iGetSecretValueXXXXXXXXXX:secret:AdminServer-XXXXX

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

检查 SecretAgent 日志

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

常见错误消息

错误消息 原因

话题 “main” com.amazonaws.services.securitytoken.model 中有异常。AWSSecurityTokenServiceException: User: arn:aws:sts::XXXXXXXXXXXX:assumed-role/EMR_EC2_DefaultRole/i-XXXXXXXXXXXX 无权执行:sts: AssumeRole on 资源:arn: aws: iam:: XXXXXXXXXXXX:role /* RangerPluginDataAccessRole *(服务: AWSSecurityTokenService;状态码:403;错误代码:;请求 ID:;代理:空) AccessDeniedXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

上述例外意味着 EMR EC2 实例配置文件角色没有权限代入该角色RangerPluginDataAccessRole。请参阅用于与 Apache Ranger 本地集成的 IAM 角色。

ERROR qtp54617902-149: Web App Exception Occurred

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

这些错误可以忽略。

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

<LOG LOCATION><CLUSTER ID><EC2 INSTANCE ID>EMR 记录服务器日志可在 EMR 节点上的/var/log/emr-record-server/ 获得,也可以在 S3 的 s3://///node//-record-server/ 目录中找到。daemons/emr

常见错误消息

错误消息 原因

InstanceMetadataServiceResourceFetcher:105 -[] 无法检索代币 com.amazonaws。SdkClientException: 无法连接到服务端点

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