使用以監控 Amazon EMR 指標 CloudWatch - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用以監控 Amazon EMR 指標 CloudWatch

指標每五分鐘更新一次,並自動收集並推送給每 CloudWatch 個 Amazon EMR 叢集的指標。此間隔無法設定。中 CloudWatch報告的 Amazon EMR 指標不收取任何費用。這些五分鐘資料點指標會封存 63 天,之後會捨棄這些資料。

如何使用 Amazon EMR 指標?

下表顯示 Amazon EMR 報告的指標常見用法。這些是協助您開始的建議,而不是完整清單。若需 Amazon EMR 報告的指標完整清單,請參閱 Amazon EMR 報告的指標 CloudWatch

運作方式? 相關指標
追蹤我的叢集進度 查看 RunningMapTasksRemainingMapTasksRunningReduceTasks,和 RemainingReduceTasks 指標。
偵測閒置叢集 IsIdle 指標會追蹤叢集是否處於活動狀態,而非目前正在執行的任務。當叢集已閒置一段指定時間 (例如 30 分鐘) 時,您可以設置警示以將其觸發。
偵測節點何時耗盡儲存空間 MRUnhealthyNodes 指標會追蹤一個或多個核心節點或任務節點何時耗盡本機磁碟儲存空間並轉換為 UNHEALTHY YARN 狀態。例如,核心節點或任務節點的磁碟空間不足,將無法執行任務。
偵測叢集何時耗盡儲存空間 HDFSUtilization 指標會監控叢集的合併 HDFS 容量,並且可能需要調整叢集大小才能新增更多核心節點。例如,HDFS 使用率很高,可能會影響作業和叢集運作狀態。
偵測叢集何時在容量減少的情況下執行 MRLostNodes 指標會追蹤一個或多個核心節點或任務節點無法與主節點通訊。例如,主節點無法存取核心節點或任務節點。

如需詳細資訊,請參閱叢集由於 NO_SLAVE_LEFT 和核心節點 FAILED_BY_MASTER 而終止AWSSupport分析工作記錄。

存取 CloudWatch Amazon EMR 的指標

您可以 CloudWatch 使用 Amazon EMR 主控台或主控台檢視 Amazon EMR 報告的指標CloudWatch 。您也可以使用 CloudWatch CLI 命令mon-get-stats或 CloudWatch GetMetricStatistics API 擷取指標。如需有關使用檢視或擷取 Amazon EMR 指標的詳細資訊 CloudWatch,請參閱 Amazon 使用 CloudWatch 者指南

注意

我們已重新設計 Amazon EMR 主控台,可讓您更輕鬆地使用。請參閱 Amazon EMR 控制台 以了解新舊主控台體驗之間的差異。

New console
使用新主控台檢視指標
  1. 登入 AWS Management Console,然後開啟 Amazon EMR 主控台,網址為 https://console.aws.amazon.com/emr

  2. 在左側導覽窗格的 EMR on EC2 下,選擇叢集,然後選擇您要檢視其指標的叢集。這會開啟叢集詳細資訊頁面。

  3. 選取叢集詳細資訊頁面中的監控索引標籤。選擇叢集狀態節點狀態輸入和輸出選項中的任何一個,載入有關叢集進度和運作狀態的報告。

  4. 選擇要檢視的指標後,可以放大每個圖形。若要篩選圖形的時間範圍,請選取預先填入的選項或選擇自訂

Old console
使用舊主控台檢視指標
  1. 請在 https://console.aws.amazon.com/elasticmapreduce/ 開啟 Amazon EMR 主控台。

  2. 要檢視叢集指標,請選擇一個叢集以顯示 Summary (摘要) 窗格。

  3. 選擇 Monitoring (監控) 以檢視該叢集的相關資訊。選擇叢集狀態映射/降低節點狀態IO 索引標籤中的任何一個,載入有關叢集進度和運作狀態的報告。

  4. 選擇要檢視的指標後,您可以選擇圖表大小。編輯 Start (開始)End (結束) 欄位來篩選特定時間範圍內的指標。

Amazon EMR 報告的指標 CloudWatch

下表列出 Amazon EMR 在主控台中報告並推送到的指標。CloudWatch

Amazon EMR 指標

Amazon EMR 會將多個指標的資料傳送到 CloudWatch。所有 Amazon EMR 叢集每隔五分鐘自動傳送一次指標。指標將封存兩週,之後即會捨棄資料。

AWS/ElasticMapReduce 命名空間包含下列指標。

注意

Amazon EMR 從叢集中提取指標。如果叢集無法連接,則不會報告指標,除非叢集再次可用。

以下指標可用於執行 Hadoop 2.x 版本的叢集。

指標 描述
叢集狀態

IsIdle

指出叢集不再執行工作,但仍然處於作用中狀態並會產生費用。如果未執行任何任務,而且未執行任何工作,則會設為 1,否則設為 0。每隔五分鐘檢查一次此值,值 1 表示叢集只在檢查時為閒置狀態,而不是整個五分鐘都閒置。為了避免誤判,此值已為 1 且持續多個連續 5 分鐘檢查時,您應該發出警示。例如,如果此值已為 1 且持續 30 分鐘 (含) 以上,則您可以對此值發出警示。

使用案例:監控叢集效能

單位:布林值

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 之工作的資料節點百分比。

使用案例:監控叢集運作狀態

單位:百分比

先生 TotalNodes

目前可供 MapReduce 工作使用的節點數目。相當於 YARN 指標 mapred.resourcemanager.TotalNodes

使用案例:監控叢集進度

單位:計數

先生 ActiveNodes

目前正在執行作 MapReduce 業或作業的節點數目。相當於 YARN 指標 mapred.resourcemanager.NoOfActiveNodes

使用案例:監控叢集進度

單位:計數

先生 LostNodes

已標記為「遺失」狀態的配置節點數目。 MapReduce 相當於 YARN 指標 mapred.resourcemanager.NoOfLostNodes

使用案例:監控叢集運作狀態、監控叢集進度

單位:計數

先生 UnhealthyNodes

標記為「不健康」狀態的 MapReduce 作業可用的節點數目。相當於 YARN 指標 mapred.resourcemanager.NoOfUnhealthyNodes

使用案例:監控叢集進度

單位:計數

先生 DecommissionedNodes

配置給已標示為 [已解除委任] 狀態之 MapReduce 應用程式的節點數目。相當於 YARN 指標 mapred.resourcemanager.NoOfDecommissionedNodes

使用案例:監控叢集運作狀態、監控叢集進度

單位:計數

先生 RebootedNodes

已重新啟動並標示為 REBOUTE 狀態的可用節點數目。 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 儲存體百分比。

使用案例:分析叢集效能

單位:百分比

HDFS BytesRead

讀取自 HDFS 的位元組數目。此指標僅彙總任MapReduce 務,不適用於 Amazon EMR 上的其他工作負載。

使用案例:分析叢集效能、監控叢集進度

單位:計數

HDFS BytesWritten

寫入至 HDFS 的位元組數目。此指標僅彙總任MapReduce 務,不適用於 Amazon EMR 上的其他工作負載。

使用案例:分析叢集效能、監控叢集進度

單位:計數

MissingBlocks

HDFS 在其中沒有複本的區塊數目。這些可能是毀損區塊。

使用案例:監控叢集運作狀態

單位:計數

CorruptBlocks

HDFS 報告為毀損的區塊數目。

使用案例:監控叢集運作狀態

單位:計數

TotalLoad

並行資料傳送總次數。

使用案例:監控叢集運作狀態

單位:計數

MemoryTotalMB

叢集中的總記憶體量。

使用案例:監控叢集進度

單位:計數

MemoryReservedMB

保留記憶體數量。

使用案例:監控叢集進度

單位:計數

MemoryAvailableMB

可供配置的記憶體數量。

使用案例:監控叢集進度

單位:計數

紗線 MemoryAvailablePercentage

剩餘存儲器可用於紗線的百分比(紗 MemoryAvailablePercentage = MemoryAvailable MB/MemoryTotalMB)。此值適用於根據 YARN 記憶體用量來調整叢集資源。

單位:百分比

MemoryAllocatedMB

已配置給叢集的記憶體數量。

使用案例:監控叢集進度

單位:計數

PendingDeletionBlocks

標記進行刪除的區塊數目。

使用案例:監控叢集進度、監控叢集運作狀態

單位:計數

UnderReplicatedBlocks

需要複寫一或多次的區塊數目。

使用案例:監控叢集進度、監控叢集運作狀態

單位:計數

DfsPendingReplicationBlocks

區塊複寫狀態:正在複寫的區塊、複寫要求存留期,以及失敗的複寫要求。

使用案例:監控叢集進度、監控叢集運作狀態

單位:計數

CapacityRemainingGB

剩餘 HDFS 磁碟容量的數量。

使用案例:監控叢集進度、監控叢集運作狀態

單位:計數

下列是 Hadoop 1 指標:

指標 描述
叢集狀態

IsIdle

指出叢集不再執行工作,但仍然處於作用中狀態並會產生費用。如果未執行任何任務,而且未執行任何工作,則會設為 1,否則設為 0。每隔五分鐘檢查一次此值,值 1 表示叢集只在檢查時為閒置狀態,而不是整個五分鐘都閒置。為了避免誤判,此值已為 1 且持續多個連續 5 分鐘檢查時,您應該發出警示。例如,如果此值已為 1 且持續 30 分鐘 (含) 以上,則您可以對此值發出警示。

使用案例:監控叢集效能

單位:布林值

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 儲存體百分比。

使用案例:分析叢集效能

單位:百分比

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

叢集中 CORE 單位/節點/vCPU 的目標數,由受管擴展判定。

單位:計數

  • CoreUnitsRunning

  • CoreNodesRunning

  • CoreVCPURunning

叢集中正在執行的 CORE 單位/節點/vCPU 的目前數目。

單位:計數

  • TaskUnitsRequested

  • TaskNodesRequested

  • TaskVCPURequested

叢集中 TASK 單位/節點/vCPU 的目標數,由受管擴展判定。

單位:計數

  • TaskUnitsRunning

  • TaskNodesRunning

  • TaskVCPURunning

叢集中正在執行的 TASK 單位/節點/vCPU 的目前數目。

單位:計數

當您使用自動終止政策啟用自動終止時,Amazon EMR 會以一分鐘的精細度發出以下指標。部分指標僅適用於 Amazon EMR 6.4.0 及更新的版本。若要進一步了解自動終止,請參閱 使用自動終止政策

指標 描述
TotalNotebookKernels 叢集上的執行中和閒置筆記本核心的總數。

此指標僅適用於 Amazon EMR 6.4.0 及更新的版本。

AutoTerminationIsClusterIdle 指出叢集是否在使用中。

0 值表示叢集正由下列其中一個元件使用:

  • YARN 應用程式

  • HDFS

  • 筆記本

  • 叢集上的 UI,例如 Spark 歷史記錄伺服器

1 值表示叢集處於閒置狀態。Amazon EMR 會檢查叢集是否持續閒置 (AutoTerminationIsClusterIdle = 1)。當叢集的閒置時間等於自動終止政策中的 IdleTimeout 值時,Amazon EMR 會終止叢集。

Amazon EMR 指標的維度

可使用下表中的任何一個維度來篩選 Amazon EMR 資料。

維度 描述
JobFlowId 與叢集 ID 相同,它是叢集的唯一識別符,格式為 j-XXXXXXXXXXXXX。在 Amazon EMR 主控台中按一下叢集即可尋找此值。