

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

# EMR 集群预置失败
<a name="emr-ranger-troubleshooting-cluster-failed"></a>

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 插件创建密钥库和信任库] /returns（注意）：14040860619764：错误：0906 例程：pem\_read\_bio：无起始行：pem\_lib.c: 707: 期待：任何私钥 D06C:PEM  | Secrets Manager 中用于 Apache Ranger 插件凭证的私有 TLS 凭证格式不正确或不是私有凭证。请参阅 [用于 Apache Ranger 与 Amazon EMR 集成的 TLS 证书](emr-ranger-admin-tls.md) 了解凭证格式。 | 
| /Stage [main]/Ranger\_plugins::Ranger\_s3\_plugin/Ranger\_plugins: [在 Ranger s3 插件中配置双向 TLS] /Exec Prepare\_two\_way\_tls [为 Ranger amazon-emr-s3 插件创建密钥库和信任库] /returns（注意）：调用 GetSecretValue 操作时出现错误 ()：用户：arn: aws: sts::-xxxxxxxxxxx 无权执行：secretsmanager：在资源：arn:aws: secretsmanager: us-east-1：AccessDeniedExceptionXXXXXXXXXXX: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/` 目录中。

**常见错误消息**


| 错误消息 | 原因 | 
| --- | --- | 
| 话题 “主” com.amazonaws.services.securitytoken.model 出现异常。 AWSSecurityTokenServiceException: User: arn:aws:sts::XXXXXXXXXXXX:assumed-role/EMR\_EC2\_DefaultRole/i-XXXXXXXXXXXXXX 无权AssumeRole 在资源上执行：sts：arn: aws: iam::XXXXXXXXXXXX:role/RangerPluginDataAccessRole\*（服务： AWSSecurityTokenService；状态码：403；错误代码：；请求编号：；代理：空） AccessDeniedXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX | 上述例外情况意味着 EMR EC2 实例配置文件角色无权担任该角色。**RangerPluginDataAccessRole**请参阅[用于与 Apache Ranger 本地集成的 IAM 角色](emr-ranger-iam.md)。 | 
| ERROR qtp54617902-149: Web App Exception Occurred<br />javax.ws.rs。 NotAllowedException: 不允许使用 HTTP 405 方法 | 这些错误可以忽略。 | 

**检查记录服务器日志（适用于 SparkSQL）**

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

**常见错误消息**


| 错误消息 | 原因 | 
| --- | --- | 
| InstanceMetadataServiceResourceFetcher:105 -[] 无法检索令牌 com.amazonaws。 SdkClientException: 无法连接到服务端点  | EMR SecretAgent 未能出现或出现问题。检查 SecretAgent 日志中是否存在错误，并检查 puppet 脚本以确定是否存在任何配置错误。 | 