BOOTSTRAP_FAILURE_BA_DOWNLOAD_FAILED_PRIMARY
概览
当主实例无法从您指定的 Amazon S3 位置下载引导操作脚本时,集群终止并出现 BOOTSTRAP_FAILURE_BA_DOWNLOAD_FAILED_PRIMARY 错误。典型的原因包括:
-
引导操作脚本文件不在指定的 Amazon S3 位置。
-
集群上的 Amazon EC2 实例的服务角色(也称为 Amazon EMR 的 EC2 实例配置文件)无权访问引导操作脚本所在的 Amazon S3 存储桶。有关服务角色的更多信息,请参阅 集群 EC2 实例(EC2 实例配置文件)的服务角色。
有关引导操作的更多信息,请参阅 创建引导操作以使用 Amazon EMR 集群安装其他软件。
解决方案
要解决此错误,请确保您的主实例具有对引导操作脚本的适当访问权限。
要排查失败的 EMR 集群问题,请参阅 DescribeCluster 和 ListClusters API 返回的 ErrorDetail 信息。有关更多信息,请参阅 Amazon EMR 中包含 ErrorDetail 信息的错误代码。ErrorDetail 中的 ErrorData 数组返回此错误代码的以下信息:
primary-instance-id-
引导操作失败的主实例的 ID。
bootstrap-action-
失败的引导操作的序号。
bootstrap-action值为1的脚本是在实例上运行的第一个引导操作。 amazon-s3-path-
失败的引导操作的 Amazon S3 位置。
public-doc-
错误代码文档的公有 URL。
完成步骤
执行以下步骤以确定和修复引导操作错误的根本原因。然后启动新集群。
故障排除步骤
-
使用
ErrorData数组中的amazon-s3-path值在 Amazon S3 中查找相关的引导操作脚本。 -
如果您在创建实例时开启了集群日志,请参阅
stdout日志以了解更多信息。您可以在以下 Amazon S3 位置找到引导操作的stdout日志:s3://amzn-s3-demo-bucket/logs/Your_Cluster_Id/node/Primary_Instance_Id/bootstrap-actions/Failed_Bootstrap_Action_Number/stdout.gz有关集群的更多信息,请参阅 配置 Amazon EMR 集群日志记录和调试。
-
要确定引导操作失败,请查看
stdout日志中的异常以及ErrorData中的return-code值。 -
使用上一步中的发现来修改您的引导操作,使其避免异常或在异常发生时可以正常地处理异常。
-
使用更新的引导操作启动新集群。