

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

# 使用监控 Amazon EMR 指标 CloudWatch
<a name="UsingEMR_ViewingMetrics"></a>

每五分钟更新一次，并自动收集每个 Amazon EMR 集群 CloudWatch 的指标并将其推送到每个 Amazon EMR 集群。此时间间隔是不可配置的。中报告的亚马逊 EMR 指标不收取任何费用。 CloudWatch这些五分钟的数据点指标会归档 63 天，之后数据将被丢弃。

## 如何使用 Amazon EMR 指标？
<a name="UsingEMR_ViewingMetrics_HowDoI"></a>

下表显示了 Amazon EMR 报告指标的常见用途。这些是入门建议，并不全面。有关由 Amazon EMR 报告的指标的完整列表，请参阅[亚马逊 EMR 报告的指标 CloudWatch](#UsingEMR_ViewingMetrics_MetricsReported)。


****  

| 如何？ | 相关指标 | 
| --- | --- | 
| 跟踪我的集群进展 | 查看 RunningMapTasks、RemainingMapTasks、RunningReduceTasks 和 RemainingReduceTasks 指标。 | 
| 检测处于空闲状态的集群 | IsIdle 指标可跟踪某个集群 (非当前运行任务) 是否正在实时运行。您可以设置当集群闲置达到给定时长 (例如 30 分钟) 时便可引发的警报。 | 
| 检测节点何时用尽存储空间 | MRUnhealthyNodes 指标跟踪一个或多个核心节点或任务节点何时用尽本地磁盘存储空间并转换到 UNHEALTHY YARN 状态。例如，核心节点或任务节点在磁盘中的运行空间不足，并将无法运行任务。 | 
| 检测集群何时用尽存储空间 | HDFSUtilization 指标监控集群的组合 HDFS 容量，可能需要调整集群大小以添加更多核心节点。例如，HDFS 利用率较高，这可能会影响任务和集群运行状况。 | 
| 检测集群何时以更少容量运行 | MRLostNodes 指标跟踪一个或多个核心节点或任务节点何时无法与主节点通信。例如，主节点无法访问核心节点或任务节点。 | 

有关更多信息，请参阅[Amazon EMR 集群终止并显示 NO\$1SLAVE\$1LEFT，核心节点为 FAILED\$1BY\$1MASTER](emr-cluster-NO_SLAVE_LEFT-FAILED_BY_MASTER.md)和[AWSSupport-AnalyzeEMRLogs](https://docs.aws.amazon.com//systems-manager-automation-runbooks/latest/userguide/automation-awssupport-analyzeemrlogs.html)。

## 亚马逊 EMR 的访问 CloudWatch 指标
<a name="UsingEMR_ViewingMetrics_Access"></a>

您可以使用亚马逊 EMR 控制台或控制台查看 A CloudWatch mazon EMR 报告的指标。CloudWatch 您也可以使用 CloudWatch CLI 命令`[mon-get-stats](https://docs.aws.amazon.com/AmazonCloudWatch/latest/cli/cli-mon-get-stats.html)`或 CloudWatch `[GetMetricStatistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html)` API 检索指标。有关 CloudWatch使用查看或检索 Amazon EMR 指标的更多信息，请参阅[ CloudWatch 亚马逊用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/)。

------
#### [ Console ]

**使用控制台查看指标**

1. [登录 AWS 管理控制台，然后在 /emr 上打开亚马逊 EMR 控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/emr)

1. 在左侧导航窗格中的 **EMR on EC2** 下，选择 **Clusters**（集群），然后选择要查看指标的集群。集群详细信息页面随即打开。

1. 在集群详细信息页面上选择 **Monitoring**（监控）选项卡。选择 **Cluster Status**（集群状态）、**Node Status**（节点状态）或 **Inputs and outputs**（输入和输出）选项中的任何一个，以加载有关集群进度和运行状况的报告。

1. 选择要查看的指标之后，您可以放大每个图表。要筛选图表的时间范围，请选择预填选项或选择 **Custom**（自定义）。

------

## 亚马逊 EMR 报告的指标 CloudWatch
<a name="UsingEMR_ViewingMetrics_MetricsReported"></a>

下表列出了 Amazon EMR 在控制台中报告并推送到的指标。CloudWatch

### Amazon EMR 指标
<a name="emr-metrics-reported"></a>

Amazon EMR 将多个指标的数据发送到。 CloudWatch所有 Amazon EMR 集群会以五分钟的间隔自动发送指标。指标会存档两周。两周后，数据会被丢弃。

`AWS/ElasticMapReduce` 命名空间包括以下指标。

**注意**  
Amazon EMR 从集群中提取指标。如果无法连接到集群，则在此集群再次变成可用状态之前，EMR 将不会报告任何指标。

以下指标适用于 Hadoop 2.x 版本上运行的集群。


| 指标 | 说明 | 
| --- | --- | 
| 集群状态 | 
| IsIdle  | 指示集群不再执行任务，但仍处于活动状态并会产生费用。如果没有任何任务和任务处于运行状态，则此指标设置为 1；否则设置为 0。系统每隔五分钟检查一次该值，值为 1 仅表示在检查时集群处于空闲状态，并不表示它整个五分钟内都处于空闲状态。为避免误报，当多次连续 5 分钟检查获得的值均为 1 时，您应提出警报。例如，当该值在三十分钟或更长时间内都为 1 时，您应提出警报。 使用案例：监控集群性能 单位：*布尔值*  | 
| ContainerAllocated  | 分配的资源容器数量ResourceManager。 使用案例：监控集群进度 单位：*计数*  | 
| ContainerReserved  | 预留的容器数。 使用案例：监控集群进度 单位：*计数*  | 
| ContainerPending  | 队列中尚未分配的容器数。 使用案例：监控集群进度 单位：*计数*  | 
| ContainerPendingRatio  | 待处理容器与已分配容器的比率 (ContainerPendingRatio = ContainerPending / ContainerAllocated)。如果 ContainerAllocated = 0，则为 ContainerPendingRatio = ContainerPending。的值 ContainerPendingRatio 代表数字，而不是百分比。此值对基于容器分配行为扩展集群资源很有用。 单位：*计数*  | 
| AppsCompleted  | 提交给 YARN 并且已完成的应用程序数。 使用案例：监控集群进度 单位：*计数*  | 
| AppsFailed  | 提交给 YARN 并且未能完成的应用程序数。 使用案例：监控集群进度，监控集群运行状况 单位：*计数*  | 
| AppsKilled  | 提交给 YARN 并且已终止的应用程序数。 使用案例：监控集群进度，监控集群运行状况 单位：*计数*  | 
| AppsPending  | 提交给 YARN 并且处于挂起状态的应用程序数。 使用案例：监控集群进度 单位：*计数*  | 
| AppsRunning  | 提交给 YARN 并且正在运行的应用程序数。 使用案例：监控集群进度 单位：*计数*  | 
| AppsSubmitted  | 提交给 YARN 的应用程序数。 使用案例：监控集群进度 单位：*计数*  | 
| 节点状态 | 
| CoreNodesRunning  | 处于运行状态的核心节点的数量。仅当对应的实例组存在时，才会报告此指标的数据点。 使用案例：监控集群运行状况 单位：*计数*  | 
| CoreNodesPending  | 等待分配的核心节点的数量。请求的所有核心节点可能不会立即可用；此指标报告挂起的请求。仅当对应的实例组存在时，才会报告此指标的数据点。 使用案例：监控集群运行状况 单位：*计数*  | 
| LiveDataNodes  | 从 Hadoop 接收任务的数据节点的百分率。 使用案例：监控集群运行状况 单位：*百分比*  | 
| MRTotal节点  | 当前可供 MapReduce 作业使用的节点数量。等效于 YARN 指标 `mapred.resourcemanager.TotalNodes`。 使用案例：监控集群进度 单位：*计数* 注意： MRTotal节点仅计算系统中当前处于活动状态的节点。YARN 会自动从该计数中删除已终止的节点并停止对其进行跟踪，因此 MRTotal节点指标中不考虑这些节点。  | 
| MRActive节点  | 当前正在运行 MapReduce 任务或作业的节点数量。等效于 YARN 指标 `mapred.resourcemanager.NoOfActiveNodes`。 使用案例：监控集群进度 单位：*计数*  | 
| MRLost节点  | 分配给已标记为 L MapReduce OST 状态的节点的数量。等效于 YARN 指标 `mapred.resourcemanager.NoOfLostNodes`。 使用案例：监控集群运行状况，监控集群进度 单位：*计数*  | 
| MRUnhealthy节点  | 标记为 “运行状况不佳” 的 MapReduce 作业可用的节点数量。等效于 YARN 指标 `mapred.resourcemanager.NoOfUnhealthyNodes`。 使用案例：监控集群进度 单位：*计数*  | 
| MRDecommissioned节点  | 分配给已标记为 “已停用” 状态的 MapReduce 应用程序的节点数。等效于 YARN 指标 `mapred.resourcemanager.NoOfDecommissionedNodes`。 使用案例：监控集群运行状况，监控集群进度 单位：*计数*  | 
| MRRebooted节点  | 已重新启动并标记为 MapReduce 已重新启动状态的可用节点的数量。等效于 YARN 指标 `mapred.resourcemanager.NoOfRebootedNodes`。 使用案例：监控集群运行状况，监控集群进度 单位：*计数*  | 
| MultiMasterInstanceGroupNodesRunning  | 正在运行的主节点的数量。 使用案例：监控主节点故障和替换 单位：*计数*  | 
| MultiMasterInstanceGroupNodesRunningPercentage  | 正在运行的主节点超过所请求的主节点实例计数的百分比。 使用案例：监控主节点故障和替换 单位：*百分比*  | 
| MultiMasterInstanceGroupNodesRequested  | 请求的主节点数。 使用案例：监控主节点故障和替换 单位：*计数*  | 
| IO | 
| S3 BytesWritten  | 写入 Amazon S3 的字节数。此指标仅汇总MapReduce 任务，不适用于 Amazon EMR 上的其他工作负载。 使用案例：分析集群性能，监控集群进度 单位：*计数*  | 
| S3 BytesRead  | 从 Amazon S3 读取的字节数。此指标仅汇总MapReduce 任务，不适用于 Amazon EMR 上的其他工作负载。 使用案例：分析集群性能，监控集群进度 单位：*计数*  | 
| HDFSUtilization  | 当前使用的 HDFS 存储的百分率。 使用案例：分析集群性能 单位：*百分比*  | 
| HDFSBytes阅读  | 从 HDFS 读取的字节数。此指标仅汇总MapReduce 任务，不适用于 Amazon EMR 上的其他工作负载。 使用案例：分析集群性能，监控集群进度 单位：*计数*  | 
| HDFSBytes书面的  | 写入 HDFS 的字节数。此指标仅汇总MapReduce 任务，不适用于 Amazon EMR 上的其他工作负载。 使用案例：分析集群性能，监控集群进度 单位：*计数*  | 
| MissingBlocks  | HDFS 在其中没有副本的数据块的数量。这些数据块可能已损坏。 使用案例：监控集群运行状况 单位：*计数*  | 
| CorruptBlocks  | HDFS 报告的受损数据块的数量。 使用案例：监控集群运行状况 单位：*计数*  | 
| TotalLoad  | 并发数据传输的总数。 使用案例：监控集群运行状况 单位：*计数*  | 
| MemoryTotalMB  | 集群中的总内存量。 使用案例：监控集群进度 单位：*计数*  | 
| MemoryReservedMB  | 预留内存量。 使用案例：监控集群进度 单位：*计数*  | 
| MemoryAvailableMB  | 可供分配的内存量。 使用案例：监控集群进度 单位：*计数*  | 
| YARNMemoryAvailablePercentage  | YARN 可用的剩余内存百分比 (YARNMemoryAvailablePercentage = MemoryAvailable MB/ MemoryTotal MB)。此值对基于 YARN 内存使用量扩展集群资源很有用。 单位：*百分比*  | 
| MemoryAllocatedMB  | 分配给集群的内存量。 使用案例：监控集群进度 单位：*计数*  | 
| PendingDeletionBlocks  | 标记为进行删除的数据块数。 使用案例：监控集群进度，监控集群运行状况 单位：*计数*  | 
| UnderReplicatedBlocks  | 需要复制一次或多次的数据块数。 使用案例：监控集群进度，监控集群运行状况 单位：*计数*  | 
| DfsPendingReplicationBlocks  | 数据块复制状态：所复制的数据块、复制请求的存在时间以及不成功的复制请求。 使用案例：监控集群进度，监控集群运行状况 单位：*计数*  | 
| CapacityRemainingGB  | 剩余 HDFS 磁盘容量。 使用案例：监控集群进度，监控集群运行状况 单位：*计数*  | 

Hadoop 1 指标如下：


| 指标 | 说明 | 
| --- | --- | 
| 集群状态 | 
| IsIdle  | 指示集群不再执行任务，但仍处于活动状态并会产生费用。如果没有任何任务和任务处于运行状态，则此指标设置为 1；否则设置为 0。系统每隔五分钟检查一次该值，值为 1 仅表示在检查时集群处于空闲状态，并不表示它整个五分钟内都处于空闲状态。为避免误报，当多次连续 5 分钟检查获得的值均为 1 时，您应提出警报。例如，当该值在三十分钟或更长时间内都为 1 时，您应提出警报。 使用案例：监控集群性能 单位：*布尔值*  | 
| JobsRunning  | 集群中当前处于运行状态的任务数量。 使用案例：监控集群运行状况 单位：*计数*  | 
| JobsFailed  | 集群中失败的任务数量。 使用案例：监控集群运行状况 单位：*计数*  | 
| 映射/减少 | 
| MapTasksRunning  | 每个作业处于运行中的映射任务的数量。如果您安装了调度器并且有多个任务在运行，那么会生成多个图表。 使用案例：监控集群进度 单位：*计数*  | 
| MapTasksRemaining  | 每个作业的剩余映射任务的数量。如果您安装了调度器并且有多个任务在运行，那么会生成多个图表。剩余映射任务是指未处于任何以下状态的任务：运行中、已终止或已完成。 使用案例：监控集群进度 单位：*计数*  | 
| MapSlotsOpen  | 未使用的映射任务容量。该指标将计算为给定集群的最大映射任务数与该集群中当前运行的映射任务总数之差。 使用案例：分析集群性能 单位：*计数*  | 
| RemainingMapTasksPerSlot  | 剩余映射任务的总数与集群中可用映射插槽总数之比。 使用案例：分析集群性能 单位：*比率*  | 
| ReduceTasksRunning  | 每个作业处于运行中的缩减任务的数量。如果您安装了调度器并且有多个任务在运行，那么会生成多个图表。 使用案例：监控集群进度 单位：*计数*  | 
| ReduceTasksRemaining  | 每个作业的剩余缩减任务的数量。如果您安装了调度器并且有多个任务在运行，那么会生成多个图表。 使用案例：监控集群进度 单位：*计数*  | 
| ReduceSlotsOpen  | 未使用的缩减任务容量。该指标将计算为给定集群的最大缩减任务容量与该集群中当前运行的缩减任务数之差。 使用案例：分析集群性能 单位：*计数*  | 
| 节点状态 | 
| CoreNodesRunning  | 处于运行状态的核心节点的数量。仅当对应的实例组存在时，才会报告此指标的数据点。 使用案例：监控集群运行状况 单位：*计数*  | 
| CoreNodesPending  | 等待分配的核心节点的数量。请求的所有核心节点可能不会立即可用；此指标报告挂起的请求。仅当对应的实例组存在时，才会报告此指标的数据点。 使用案例：监控集群运行状况 单位：*计数*  | 
| LiveDataNodes  | 从 Hadoop 接收任务的数据节点的百分率。 使用案例：监控集群运行状况 单位：*百分比*  | 
| TaskNodesRunning  | 处于运行状态的任务节点的数量。仅当对应的实例组存在时，才会报告此指标的数据点。 使用案例：监控集群运行状况 单位：*计数*  | 
| TaskNodesPending  | 等待分配的任务节点的数量。请求的所有任务节点可能不会立即可用；此指标报告挂起的请求。仅当对应的实例组存在时，才会报告此指标的数据点。 使用案例：监控集群运行状况 单位：*计数*  | 
| LiveTaskTrackers  | 处于运行状态的任务跟踪程序的百分率。 使用案例：监控集群运行状况 单位：*百分比*  | 
| IO | 
| S3 BytesWritten  | 写入 Amazon S3 的字节数。此指标仅汇总MapReduce 任务，不适用于 Amazon EMR 上的其他工作负载。 使用案例：分析集群性能，监控集群进度 单位：*计数*  | 
| S3 BytesRead  | 从 Amazon S3 读取的字节数。此指标仅汇总MapReduce 任务，不适用于 Amazon EMR 上的其他工作负载。 使用案例：分析集群性能，监控集群进度 单位：*计数*  | 
| HDFSUtilization  | 当前使用的 HDFS 存储的百分率。 使用案例：分析集群性能 单位：*百分比*  | 
| HDFSBytes阅读  | 从 HDFS 读取的字节数。 使用案例：分析集群性能，监控集群进度 单位：*计数*  | 
| HDFSBytes书面的  | 写入 HDFS 的字节数。 使用案例：分析集群性能，监控集群进度 单位：*计数*  | 
| MissingBlocks  | HDFS 在其中没有副本的数据块的数量。这些数据块可能已损坏。 使用案例：监控集群运行状况 单位：*计数*  | 
| TotalLoad  | 集群中所有 DataNodes 人报告的当前读者和作者总数。 用例：诊断高 I/O 可能在多大程度上导致作业执行性能不佳。运行 DataNode 守护程序的工作节点还必须执行映射和减少任务。随着时间的推移， TotalLoad 值持续偏高可能表明高值 I/O 可能是导致性能不佳的一个因素。此值的偶尔峰值属于常见情况，通常不指示问题。 单位：*计数*  | 

#### 集群容量指标
<a name="emr-metrics-managed-scaling"></a>

以下指标指示集群的当前容量或目标容量。仅当启用了托管扩展或自动终止时，这些指标才可用。

对于由实例集组成的集群，将在 `Units` 中测量集群容量指标。对于由实例组组成的集群，将根据托管扩展策略中使用的单位类型在 `Nodes` 或 `VCPU` 中测量集群容量指标。有关更多信息，请参阅 《Amazon EMR 管理指南》**中的[使用 EMR 托管扩展](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-scaling.html)。


| 指标 | 说明 | 
| --- | --- | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/UsingEMR_ViewingMetrics.html) | 集群units/nodes/vCPUs中的目标总数，由托管扩展确定。 单位：*计数*  | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/UsingEMR_ViewingMetrics.html)  | 正在运行的集群中当前units/nodes/vCPUs可用的总数。当请求集群大小调整时，将在集群中添加或删除新实例后更新此指标。 单位：*计数*  | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/UsingEMR_ViewingMetrics.html)  | 集群units/nodes/vCPUs中的目标 CORE 数量，由托管扩展确定。 单位：*计数*  | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/UsingEMR_ViewingMetrics.html)  | 集群中当前units/nodes/vCPUs运行的 CORE 数量。 单位：*计数*  | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/UsingEMR_ViewingMetrics.html)  | 集群units/nodes/vCPUs中任务的目标数量，由托管扩展决定。 单位：*计数*  | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/UsingEMR_ViewingMetrics.html)  | 集群中当前units/nodes/vCPUs运行的 TASK 数量。 单位：*计数*  | 

当您使用自动终止策略启用自动终止时，Amazon EMR 将按一分钟的粒度发出以下指标。有些指标仅可用于 Amazon EMR 版本 6.4.0 及更高版本。要了解有关自动终止的更多信息，请参阅 [使用自动终止策略进行 Amazon EMR 集群清理](emr-auto-termination-policy.md)。


****  

| 指标 | 说明 | 
| --- | --- | 
| TotalNotebookKernels | 集群上运行和空闲 Notebook 内核的总数。此指标仅可用于 Amazon EMR 版本 6.4.0 及更高版本。 | 
| AutoTerminationIsClusterIdle | 表示集群是否正被使用。值为 **0** 表示集群当前正被以下组件之一使用：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/UsingEMR_ViewingMetrics.html) 值为 **1** 表示集群处于空闲状态。Amazon EMR 检查是否存在持续处于闲置状态的集群 (`AutoTerminationIsClusterIdle` = 1)。当某一集群的空闲时间等于自动终止策略中的 `IdleTimeout` 值时，Amazon EMR 将终止该集群。  | 

### Amazon EMR 指标的维度
<a name="emr-metrics-dimensions"></a>

Amazon EMR 数据可以使用下表中的任一维度进行筛选。


| 维度  | 说明  | 
| --- | --- | 
| JobFlowId | 与 集群 ID 相同，它是集群的唯一标识符（以 j-XXXXXXXXXXXXX 形式表示）。您可以通过在 Amazon EMR 控制台中单击集群来找到该值。 | 