使用监控亚马逊EMR指标 CloudWatch - Amazon EMR

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

使用监控亚马逊EMR指标 CloudWatch

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

如何使用亚马逊EMR指标?

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

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

有关更多信息,请参见集群以 NO_ _ LEFT 和核心节点 _B SLAVE Y_ 终止 FAILED MASTERAWSSupport-A nalyzeEMRLogs

Amazon 的访问 CloudWatch 指标 EMR

您可以使用亚马逊EMR控制台或控制台查看亚马逊向 CloudWatch 其EMRCloudWatch 报告的指标。您也可以使用 CloudWatch CLI命令mon-get-stats或来检索指标CloudWatch GetMetricStatisticsAPI。有关EMR使用查看或检索亚马逊指标的更多信息 CloudWatch,请参阅《亚马逊 CloudWatch 用户指南》

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

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

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

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

Amazon EMR 在 CloudWatch

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

亚马逊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

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

使用案例:监控集群进度

单位:计数

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 接收任务的数据节点的百分率。

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

单位:百分比

MRTotalNodes

当前可供 MapReduce 作业使用的节点数量。等同于YARN公制mapred.resourcemanager.TotalNodes

使用案例:监控集群进度

单位:计数

MRActiveNodes

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

使用案例:监控集群进度

单位:计数

MRLostNodes

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

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

单位:计数

MRUnhealthyNodes

标记为某一UNHEALTHY状态的 MapReduce 作业可用的节点数量。等同于YARN公制mapred.resourcemanager.NoOfUnhealthyNodes

使用案例:监控集群进度

单位:计数

MRDecommissionedNodes

分配给已标记为 MapReduce 某种DECOMMISSIONED状态的应用程序的节点数。等同于YARN公制mapred.resourcemanager.NoOfDecommissionedNodes

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

单位:计数

MRRebootedNodes

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

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

单位:计数

MultiMasterInstanceGroupNodesRunning

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

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

单位:计数

MultiMasterInstanceGroupNodesRunningPercentage

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

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

单位:百分比

MultiMasterInstanceGroupNodesRequested

请求的主节点数。

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

单位:计数

IO

S3 BytesWritten

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

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

单位:计数

S3 BytesRead

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

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

单位:计数

HDFSUtilization

当前使用的HDFS存储空间百分比。

使用案例:分析集群性能

单位:百分比

HDFSBytesRead

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

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

单位:计数

HDFSBytesWritten

写入的字节数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存储空间百分比。

使用案例:分析集群性能

单位:百分比

HDFSBytesRead

从中读取的字节数HDFS。

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

单位:计数

HDFSBytesWritten

写入的字节数HDFS。

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

单位:计数

MissingBlocks

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

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

单位:计数

TotalLoad

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

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

单位:计数

集群容量指标

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

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

指标 描述
  • TotalUnitsRequested

  • TotalNodesRequested

  • TotalVCPURequested

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

单位:计数

  • TotalUnitsRunning

  • TotalNodesRunning

  • TotalVCPURunning

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

单位:计数

  • CoreUnitsRequested

  • CoreNodesRequested

  • CoreVCPURequested

集群vCPUs 中的目标CORE单位/节点/数量,由托管扩展确定。

单位:计数

  • CoreUnitsRunning

  • CoreNodesRunning

  • CoreVCPURunning

集群中当前vCPUs 运行的CORE单元/节点/数量。

单位:计数

  • TaskUnitsRequested

  • TaskNodesRequested

  • TaskVCPURequested

集群vCPUs 中的目标TASK单位/节点/数量,由托管扩展确定。

单位:计数

  • TaskUnitsRunning

  • TaskNodesRunning

  • TaskVCPURunning

集群中当前vCPUs 运行的TASK单元/节点/数量。

单位:计数

当您使用自动终EMR止策略启用自动终止时,Amazon 会每隔一分钟发布以下指标。某些指标仅适用于亚马逊 6.4.0 及更高EMR版本。要了解有关自动终止的更多信息,请参阅 使用自动终止策略

指标 描述
TotalNotebookKernels 集群上运行和空闲笔记本内核的总数。

此指标仅适用于亚马逊 6.4.0 及更高EMR版本。

AutoTerminationIsClusterIdle 表示集群是否正被使用。

值为 0 表示集群当前正被以下组件之一使用:

  • 一个YARN应用程序

  • HDFS

  • 笔记本

  • 群集上的 UI,例如 Spark 历史记录服务器

值为 1 表示集群处于空闲状态。Amazon EMR 会检查集群是否持续处于空闲状态 (AutoTerminationIsClusterIdle= 1)。当集群的空闲时间等于自动终止策略中的IdleTimeout值时,Amazon EMR 会终止该集群。

Amazon EMR 指标的尺寸

可以使用下表中的任何维度来筛选 Amazon EMR 数据。

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