使用监控 Amazon EMR 指标 CloudWatch - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用监控 Amazon EMR 指标 CloudWatch

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

如何使用 Amazon EMR 指标?

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

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

有关更多信息,请参阅集群因 NO_SLAVE_LEFT 和核心节点 FAILED_BY_MASTER 而终止AWSSupport-analy zeemrLogs。

亚马逊 EMR 的访问 CloudWatch 指标

您可以使用亚马逊 EMR 控制台或控制台查看 A CloudWatch mazon EMR 报告的指标。CloudWatch 您也可以使用 CloudWatch CLI 命令mon-get-stats或 CloudWatch GetMetricStatistics API 检索指标。有关 CloudWatch使用查看或检索 Amazon EMR 指标的更多信息,请参阅 CloudWatch 亚马逊用户指南

注意

我们重新设计了 Amazon EMR 控制台,以便其易于使用。请参阅 亚马逊 EMR 控制台,以了解有关新旧控制台体验差异的信息。

New console
使用新控制台中查看指标
  1. 登录并打开亚马逊 EMR 控制台,网址为 https://console.aws.amazon.com/emr。 Amazon Web Services Management Console

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

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

  4. 选择要查看的指标之后,您可以放大每个图表。要筛选图表的时间范围,请选择预填选项或选择 Custom(自定义)。

Old console
使用旧控制台查看指标
  1. 通过以下链接打开 Amazon EMR 控制台:https://console.aws.amazon.com/elasticmapreduce/

  2. 要查看集群的指标,请选择集群以显示 Summary (摘要) 窗格。

  3. 选择监控以查看有关该集群的信息。选择 Cluster Status(集群状态)、Map/Reduce(映射/化简)、Node Status(节点状态)或 IO 选项卡中的任何一个,从而加载有关集群进度和运行状况的报告。

  4. 选择要查看的指标之后,您可以选取图表大小。编辑 Start (开始)End (结束) 字段以按特定时间范围筛选指标。

亚马逊 EMR 在中报告的指标 CloudWatch

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

Amazon EMR 指标

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

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

注意

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

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

指标 描述
集群状态

IsIdle

指示集群不再执行任务,但仍处于活动状态并会产生费用。如果没有任何任务和任务处于运行状态,则此指标设置为 1;否则设置为 0。系统每隔五分钟检查一次该值,值为 1 仅表示在检查时集群处于空闲状态,并不表示它整个五分钟内都处于空闲状态。为避免误报,当多次连续 5 分钟检查获得的值均为 1 时,您应提出警报。例如,当该值在三十分钟或更长时间内都为 1 时,您应提出警报。

使用案例:监控集群性能

单位:布尔值

ContainerAllocated

分配的资源容器数量ResourceManager。

使用案例:监控集群进度

单位:计数

ContainerReserved

预留的容器数。

使用案例:监控集群进度

单位:计数

ContainerPending

队列中尚未分配的容器数。

使用案例:监控集群进度

单位:计数

ContainerPending比率

待处理容器与已分配容器的比率 (ContainerPendingRatio = ContainerPending / ContainerAllocated)。如果 ContainerAllocated = 0,则为 ContainerPendingRatio = ContainerPending。的值 ContainerPendingRatio 代表一个数字,而不是百分比。此值对基于容器分配行为扩展集群资源很有用。

单位:计数

AppsCompleted

提交给 YARN 并且已完成的应用程序数。

使用案例:监控集群进度

单位:计数

AppsFailed

提交给 YARN 并且未能完成的应用程序数。

使用案例:监控集群进度,监控集群运行状况

单位:计数

AppsKilled

提交给 YARN 并且已终止的应用程序数。

使用案例:监控集群进度,监控集群运行状况

单位:计数

AppsPending

提交给 YARN 并且处于挂起状态的应用程序数。

使用案例:监控集群进度

单位:计数

AppsRunning

提交给 YARN 并且正在运行的应用程序数。

使用案例:监控集群进度

单位:计数

AppsSubmitted

提交给 YARN 的应用程序数。

使用案例:监控集群进度

单位:计数

节点状态

CoreNodes正在跑步

处于运行状态的核心节点的数量。仅当对应的实例组存在时,才会报告此指标的数据点。

使用案例:监控集群运行状况

单位:计数

CoreNodes待定

等待分配的核心节点的数量。请求的所有核心节点可能不会立即可用;此指标报告挂起的请求。仅当对应的实例组存在时,才会报告此指标的数据点。

使用案例:监控集群运行状况

单位:计数

LiveData节点

从 Hadoop 接收任务的数据节点的百分率。

使用案例:监控集群运行状况

单位:百分比

先生 TotalNodes

当前可供 MapReduce 作业使用的节点数量。等效于 YARN 指标 mapred.resourcemanager.TotalNodes

使用案例:监控集群进度

单位:计数

先生 ActiveNodes

当前正在运行 MapReduce 任务或作业的节点数量。等效于 YARN 指标 mapred.resourcemanager.NoOfActiveNodes

使用案例:监控集群进度

单位:计数

先生 LostNodes

分配给 MapReduce 已标记为 LOST 状态的节点数量。等效于 YARN 指标 mapred.resourcemanager.NoOfLostNodes

使用案例:监控集群运行状况,监控集群进度

单位:计数

先生 UnhealthyNodes

标记为不健康状态的 MapReduce 作业可用的节点数量。等效于 YARN 指标 mapred.resourcemanager.NoOfUnhealthyNodes

使用案例:监控集群进度

单位:计数

先生 DecommissionedNodes

分配给已标记为 “已停用” 状态的 MapReduce 应用程序的节点数。等效于 YARN 指标 mapred.resourcemanager.NoOfDecommissionedNodes

使用案例:监控集群运行状况,监控集群进度

单位:计数

先生 RebootedNodes

已重新启动并标记为 MapReduce 已重新启动状态的可用节点的数量。等效于 YARN 指标 mapred.resourcemanager.NoOfRebootedNodes

使用案例:监控集群运行状况,监控集群进度

单位:计数

MultiMasterInstanceGroupNodesRunning

正在运行的主节点的数量。

使用案例:监控主节点故障和替换

单位:计数

MultiMasterInstanceGroupNodesRunning百分比

正在运行的主节点超过所请求的主节点实例计数的百分比。

使用案例:监控主节点故障和替换

单位:百分比

MultiMasterInstanceGroupNodesRequested

请求的主节点数。

使用案例:监控主节点故障和替换

单位:计数

IO

S3 BytesWritten

写入 Amazon S3 的字节数。此指标仅汇总MapReduce 任务,不适用于 Amazon EMR 上的其他工作负载。

使用案例:分析集群性能,监控集群进度

单位:计数

S3 BytesRead

从 Amazon S3 读取的字节数。此指标仅汇总MapReduce 任务,不适用于 Amazon EMR 上的其他工作负载。

使用案例:分析集群性能,监控集群进度

单位:计数

HDFSUtilization

当前使用的 HDFS 存储的百分率。

使用案例:分析集群性能

单位:百分比

HDFS BytesRead

从 HDFS 读取的字节数。此指标仅汇总MapReduce 任务,不适用于 Amazon EMR 上的其他工作负载。

使用案例:分析集群性能,监控集群进度

单位:计数

HDFS BytesWritten

写入 HDFS 的字节数。此指标仅汇总MapReduce 任务,不适用于 Amazon EMR 上的其他工作负载。

使用案例:分析集群性能,监控集群进度

单位:计数

MissingBlocks

HDFS 在其中没有副本的数据块的数量。这些数据块可能已损坏。

使用案例:监控集群运行状况

单位:计数

CorruptBlocks

HDFS 报告的受损数据块的数量。

使用案例:监控集群运行状况

单位:计数

TotalLoad

并发数据传输的总数。

使用案例:监控集群运行状况

单位:计数

MemoryTotalMB

集群中的总内存量。

使用案例:监控集群进度

单位:计数

MemoryReservedMB

预留内存量。

使用案例:监控集群进度

单位:计数

MemoryAvailableMB

可供分配的内存量。

使用案例:监控集群进度

单位:计数

纱线MemoryAvailable百分比

YARN 可用的剩余内存百分比 (YARN MemoryAvailablePercentage = MemoryAvailable MB/ MemoryTotal MB)。此值对基于 YARN 内存使用量扩展集群资源很有用。

单位:百分比

MemoryAllocatedMB

分配给集群的内存量。

使用案例:监控集群进度

单位:计数

PendingDeletion方块

标记为进行删除的数据块数。

使用案例:监控集群进度,监控集群运行状况

单位:计数

UnderReplicated方块

需要复制一次或多次的数据块数。

使用案例:监控集群进度,监控集群运行状况

单位:计数

DfsPendingReplicationBlocks

数据块复制状态:所复制的数据块、复制请求的存在时间以及不成功的复制请求。

使用案例:监控集群进度,监控集群运行状况

单位:计数

CapacityRemainingGB

剩余 HDFS 磁盘容量。

使用案例:监控集群进度,监控集群运行状况

单位:计数

Hadoop 1 指标如下:

指标 描述
集群状态

IsIdle

指示集群不再执行任务,但仍处于活动状态并会产生费用。如果没有任何任务和任务处于运行状态,则此指标设置为 1;否则设置为 0。系统每隔五分钟检查一次该值,值为 1 仅表示在检查时集群处于空闲状态,并不表示它整个五分钟内都处于空闲状态。为避免误报,当多次连续 5 分钟检查获得的值均为 1 时,您应提出警报。例如,当该值在三十分钟或更长时间内都为 1 时,您应提出警报。

使用案例:监控集群性能

单位:布尔值

JobsRunning

集群中当前处于运行状态的任务数量。

使用案例:监控集群运行状况

单位:计数

JobsFailed

集群中失败的任务数量。

使用案例:监控集群运行状况

单位:计数

映射/减少

MapTasks正在跑步

每个作业处于运行中的映射任务的数量。如果您安装了调度器并且有多个任务在运行,那么会生成多个图表。

使用案例:监控集群进度

单位:计数

MapTasks剩下

每个作业的剩余映射任务的数量。如果您安装了调度器并且有多个任务在运行,那么会生成多个图表。剩余映射任务是指未处于任何以下状态的任务:运行中、已终止或已完成。

使用案例:监控集群进度

单位:计数

MapSlots打开

未使用的映射任务容量。该指标将计算为给定集群的最大映射任务数与该集群中当前运行的映射任务总数之差。

使用案例:分析集群性能

单位:计数

RemainingMapTasksPer老虎机

剩余映射任务的总数与集群中可用映射插槽总数之比。

使用案例:分析集群性能

单位:比率

ReduceTasks正在跑步

每个作业处于运行中的缩减任务的数量。如果您安装了调度器并且有多个任务在运行,那么会生成多个图表。

使用案例:监控集群进度

单位:计数

ReduceTasks剩下

每个作业的剩余缩减任务的数量。如果您安装了调度器并且有多个任务在运行,那么会生成多个图表。

使用案例:监控集群进度

单位:计数

ReduceSlots打开

未使用的缩减任务容量。该指标将计算为给定集群的最大缩减任务容量与该集群中当前运行的缩减任务数之差。

使用案例:分析集群性能

单位:计数

节点状态

CoreNodes正在跑步

处于运行状态的核心节点的数量。仅当对应的实例组存在时,才会报告此指标的数据点。

使用案例:监控集群运行状况

单位:计数

CoreNodes待定

等待分配的核心节点的数量。请求的所有核心节点可能不会立即可用;此指标报告挂起的请求。仅当对应的实例组存在时,才会报告此指标的数据点。

使用案例:监控集群运行状况

单位:计数

LiveData节点

从 Hadoop 接收任务的数据节点的百分率。

使用案例:监控集群运行状况

单位:百分比

TaskNodes正在跑步

处于运行状态的任务节点的数量。仅当对应的实例组存在时,才会报告此指标的数据点。

使用案例:监控集群运行状况

单位:计数

TaskNodes待定

等待分配的任务节点的数量。请求的所有任务节点可能不会立即可用;此指标报告挂起的请求。仅当对应的实例组存在时,才会报告此指标的数据点。

使用案例:监控集群运行状况

单位:计数

LiveTask追踪器

处于运行状态的任务跟踪程序的百分率。

使用案例:监控集群运行状况

单位:百分比

IO

S3 BytesWritten

写入 Amazon S3 的字节数。此指标仅汇总MapReduce 任务,不适用于 Amazon EMR 上的其他工作负载。

使用案例:分析集群性能,监控集群进度

单位:计数

S3 BytesRead

从 Amazon S3 读取的字节数。此指标仅汇总MapReduce 任务,不适用于 Amazon EMR 上的其他工作负载。

使用案例:分析集群性能,监控集群进度

单位:计数

HDFSUtilization

当前使用的 HDFS 存储的百分率。

使用案例:分析集群性能

单位:百分比

HDFS BytesRead

从 HDFS 读取的字节数。

使用案例:分析集群性能,监控集群进度

单位:计数

HDFS BytesWritten

写入 HDFS 的字节数。

使用案例:分析集群性能,监控集群进度

单位:计数

MissingBlocks

HDFS 在其中没有副本的数据块的数量。这些数据块可能已损坏。

使用案例:监控集群运行状况

单位:计数

TotalLoad

集群中所有 DataNodes 人报告的当前读者和作者总数。

使用案例:诊断高 I/O 可能导致作业执行性能低的程度。运行 DataNode 守护程序的工作节点还必须执行映射和减少任务。随着时间的推移,持续的高 TotalLoad 值可能表明高 I/O 可能是导致性能不佳的一个因素。此值的偶尔峰值属于常见情况,通常不指示问题。

单位:计数

集群容量指标

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

对于由实例集组成的集群,将在 Units 中测量集群容量指标。对于由实例组组成的集群,将根据托管扩展策略中使用的单位类型在 NodesVCPU 中测量集群容量指标。有关更多信息,请参阅 《Amazon EMR 管理指南》中的使用 EMR 托管扩展

指标 描述
  • TotalUnitsRequested

  • TotalNodesRequested

  • TotalVCPURequested

集群中由托管扩展确定的单位/节点/vCPU 的目标总数。

单位:计数

  • TotalUnitsRunning

  • TotalNodesRunning

  • TotalVCPURunning

正在运行的集群中可用单位/节点/vCPU 的当前总数。当请求集群大小调整时,将在集群中添加或删除新实例后更新此指标。

单位:计数

  • CoreUnitsRequested

  • CoreNodesRequested

  • CoreVCPURequested

集群中由托管扩展确定的核心单位/节点//vCPU 的目标数量。

单位:计数

  • CoreUnitsRunning

  • CoreNodesRunning

  • CoreVCPURunning

集群中正在运行的核心单位/节点/vCPU 的当前数量。

单位:计数

  • TaskUnitsRequested

  • TaskNodesRequested

  • TaskVCPURequested

集群中由托管扩展确定的任务单位/节点/vCPU 的目标数量。

单位:计数

  • TaskUnitsRunning

  • TaskNodesRunning

  • TaskVCPURunning

集群中正在运行的任务单位/节点/vCPU 的当前数量。

单位:计数

Amazon EMR 指标的维度

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

维度 描述
JobFlow我是 与 集群 ID 相同,它是集群的唯一标识符(以 j-XXXXXXXXXXXXX 形式表示)。您可以通过在 Amazon EMR 控制台中单击集群来找到该值。