

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

# BOOTSTRAP\$1FAILURE\$1BA\$1DOWNLOAD\$1FAILED\$1PRIMARY
<a name="BOOTSTRAP_FAILURE_BA_DOWNLOAD_FAILED_PRIMARY"></a>

## 概述
<a name="BOOTSTRAP_FAILURE_BA_DOWNLOAD_FAILED_PRIMARY_overview"></a>

当主实例无法从您指定的 Amazon S3 位置下载引导操作脚本时，集群终止并出现 `BOOTSTRAP_FAILURE_BA_DOWNLOAD_FAILED_PRIMARY` 错误。典型的原因包括：
+ 引导操作脚本文件不在指定的 Amazon S3 位置。
+ 集群上的 Amazon EC2 实例的服务角色（也称为 *Amazon EMR 的 EC2 实例配置文件*）无权访问引导操作脚本所在的 Amazon S3 存储桶。有关服务角色的更多信息，请参阅 [集群 EC2 实例（EC2 实例配置文件）的服务角色](emr-iam-role-for-ec2.md)。

有关引导操作的更多信息，请参阅 [创建引导操作以使用 Amazon EMR 集群安装其他软件](emr-plan-bootstrap.md)。

## 解决方案
<a name="BOOTSTRAP_FAILURE_BA_DOWNLOAD_FAILED_PRIMARY_resolution"></a>

要解决此错误，请确保您的主实例具有对引导操作脚本的适当访问权限。

要对出现故障的 EMR 集群进行故障排除，请参阅和返回`ErrorDetail`的信息。`DescribeCluster` `ListClusters` APIs有关更多信息，请参阅 [Amazon EMR 中包含 ErrorDetail 信息的错误代码](emr-troubleshoot-error-errordetail.md)。`ErrorDetail` 中的 `ErrorData` 数组返回此错误代码的以下信息：

**`primary-instance-id`**  
引导操作失败的主实例的 ID。

**`bootstrap-action`**  
失败的引导操作的序号。`bootstrap-action` 值为 `1` 的脚本是在实例上运行的第一个引导操作。

**`amazon-s3-path`**  
失败的引导操作的 Amazon S3 位置。

**`public-doc`**  
错误代码文档的公有 URL。

## 完成步骤
<a name="BOOTSTRAP_FAILURE_BA_DOWNLOAD_FAILED_PRIMARY_stc"></a>

执行以下步骤以确定和修复引导操作错误的根本原因。然后启动新集群。

**故障排除步骤**

1. 使用 `ErrorData` 数组中的 `amazon-s3-path` 值在 Amazon S3 中查找相关的引导操作脚本。

1. 如果您在创建实例时开启了集群日志，请参阅 `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 集群日志记录和调试](emr-plan-debugging.md)。

1. 要确定引导操作失败，请查看 `stdout` 日志中的异常以及 `ErrorData` 中的`return-code` 值。

1. 使用上一步中的发现来修改您的引导操作，使其避免异常或在异常发生时可以正常地处理异常。

1. 使用更新的引导操作启动新集群。