

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

# 哪些工具可用于对 Amazon EMR 集群进行故障排查？
<a name="emr-troubleshoot-tools"></a>

要识别和修复集群错误，您可以使用本页上描述的工具。启动集群时，您可能需要初始化一些工具。默认情况下，每个集群都可以使用其他工具。

**Topics**
+ [查看 EMR 集群详细信息](#emr-troubleshoot-tools-details)
+ [查看 EMR 集群错误详细信息](#emr-troubleshoot-errordetail)
+ [运行脚本和配置 Amazon EMR 流程](#emr-troubleshoot-tools-commands)
+ [查看日志文件](#emr-troubleshoot-tools-logs)
+ [监控 EMR 集群的性能](#emr-troubleshoot-tools-performance)

## 查看 EMR 集群详细信息
<a name="emr-troubleshoot-tools-details"></a>

您可以使用 AWS 管理控制台 AWS CLI、或 EMR API 来检索有关 EMR 集群和任务执行的详细信息。有关使用 AWS 管理控制台 和的更多信息 AWS CLI，请参阅[查看 Amazon EMR 集群状态和详细信息](emr-manage-view-clusters.md)。

### Amazon EMR 控制台详细信息窗格
<a name="emr-troubleshoot-tools-console"></a>

在 Amazon EMR 控制台上的**集群**列表中，您可查看有关您的账户和 AWS 区域中每个集群的状态的概要信息。此列表显示您过去两个月启动的所有活动和已终止的集群。从 **Clusters (集群)** 列表中，您可选择集群的 **Name (名称)** 以查看集群详细信息。此信息已进行分类，可轻松导航。

集群详细信息页面中提供的**应用程序用户界面**对排查集群的问题较为有用。它提供了 YARN 应用程序的状态，对于部分应用程序（如 Spark 应用程序），您可深入了解各种指标和方面（如作业、阶段和执行程序）。有关更多信息，请参阅 [查看 Amazon EMR 应用程序历史记录](emr-cluster-application-history.md)。此功能仅在 Amazon EMR 5.8.0 及更高版本中提供。

### Amazon EMR 命令行界面
<a name="emr-troubleshoot-tools-cli"></a>

您可以通过`--describe`参数从中找到有关集群 AWS CLI 的详细信息。

### Amazon EMR API
<a name="emr-troubleshoot-tools-api"></a>

您可以使用 `DescribeJobFlows` 操作从 API 中查找有关某一集群的详细信息。

## 查看 EMR 集群错误详细信息
<a name="emr-troubleshoot-errordetail"></a>

当 EMR 集群因错误而终止时，`DescribeCluster`和将`ListClusters` APIs 返回错误代码和错误消息。对于选定的集群错误，`ErrorDetail` 数据数组可以帮助您排查失败原因。

有关包含 `ErrorDetail` 数据的错误代码列表，请参阅 [Amazon EMR 中包含 ErrorDetail 信息的错误代码](emr-troubleshoot-error-errordetail.md)。

**注意**  
为确保向您提供最相关的信息，我们会不断完善错误消息。我们不建议您解析 `ErrorMessage` 中的文本，因为此文本可能会发生变化。

## 运行脚本和配置 Amazon EMR 流程
<a name="emr-troubleshoot-tools-commands"></a>

作为故障排除过程的一部分，您可能会发现在集群上运行自定义脚本或查看和配置集群进程很有帮助。

### 查看并重启应用程序进程
<a name="emr-troubleshoot-tools-stop-start-processes"></a>

查看集群上正在运行的进程以诊断潜在问题可能会很有帮助。您可以通过连接到集群的主节点 (master node) 停止并重新启动集群进程。有关更多信息，请参阅[查看并重新启动 Amazon EMR 和应用程序进程（进程守护程序）](emr-process-restart-stop-view.md)。

### 在不连接 SSH 的情况下运行命令和脚本
<a name="emr-troubleshoot-tools-run-scripts"></a>

要在集群上运行命令或脚本，可以使用`command-runner.jar`或者`script-runner.jar`工具，而无需与主节点 (master node) 建立 SSH 连接。有关更多信息，请参阅[在 Amazon EMR 集群上运行命令和脚本](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-commandrunner.html)。

## 查看日志文件
<a name="emr-troubleshoot-tools-logs"></a>

Amazon EMR 和 Hadoop 都会在集群运行时生成日志文件。根据在启动集群时指定的配置，您可以从多种不同工具中访问这些日志文件。有关更多信息，请参阅 [配置 Amazon EMR 集群日志记录和调试](emr-plan-debugging.md)。

### 主节点 上的日志文件
<a name="emr-troubleshoot-tools-logs-master"></a>

每个集群都会将日志文件发布到主节点上的mnt/var/log//目录。仅在集群处于运行状态时才能获取这些日志文件。

### 归档到 Amazon S3 的日志文件
<a name="emr-troubleshoot-tools-logs-s3"></a>

如果您启动集群并指定 Amazon S3 日志路径，则集群会每隔 5 分钟将存储在主节点上 mnt/var/log //中的日志文件复制到 Amazon S3。这样可确保即使在终止集群后也可以访问日志文件。因为文件的存档间隔是 5 分钟，所以可能无法获取突然终止集群的最后几分钟的状况信息。

## 监控 EMR 集群的性能
<a name="emr-troubleshoot-tools-performance"></a>

Amazon EMR 提供了多种用于监控集群性能的工具。

### Hadoop Web 界面
<a name="emr-troubleshoot-tools-hadoop-ui"></a>

每个集群都会将一组 Web 界面 (包含有关集群的信息) 发布到主节点上。您可以使用 SSH 隧道连接主节点上的这些网页，从而对它们进行访问。有关更多信息，请参阅 [查看 Amazon EMR 集群上托管的 Web 界面](emr-web-interfaces.md)。

### CloudWatch 指标
<a name="emr-troubleshoot-tools-cloudwatch"></a>

每个集群都会向报告指标 CloudWatch。 CloudWatch 是一项跟踪指标的 Web 服务，您可以使用它来设置这些指标的警报。有关更多信息，请参阅 [使用监控 Amazon EMR 指标 CloudWatch](UsingEMR_ViewingMetrics.md)。