CloudWatch で Amazon EMR のメトリクスをモニタリングする
メトリクスは 5 分ごとに更新され、自動的に収集され、すべての Amazon EMR クラスターの CloudWatch にプッシュされます。この間隔は設定できません。CloudWatch で報告される Amazon EMR メトリクスに料金はかかりません。これらの 5 分のデータポイントメトリクスは 63 日間アーカイブされ、その期間が経過したデータは破棄されます。
Amazon EMR のメトリクスを使用するには、どうすればよいですか?
Amazon EMR で報告されるメトリクスの一般的な使用法を次の表に示します。ここで紹介するのは使用開始するための提案事項であり、総括的な一覧ではありません。Amazon EMR によって報告されるメトリクスの詳細なリストについては、「Amazon EMR によって CloudWatch に報告されるメトリクス」を参照してください。
どうすればよいか? | 関連するメトリクス |
---|---|
クラスターの進行を追跡する | RunningMapTasks 、RemainingMapTasks 、RunningReduceTasks 、および RemainingReduceTasks メトリクスを確認します。 |
アイドル状態のクラスターを検出する | IsIdle メトリクスは、クラスターが現在実行されていないライブのタスクかどうかを追跡します。クラスターのアイドル状態の時間が指定した長さ(たとえば、30 分)に達した場合に通知されるようアラームを設定できます。 |
ノードのストレージがいつ使い果たされるかを検出する | MRUnhealthyNodes メトリクスは、1 つ以上のコアノードまたはタスクノードがローカルディスクストレージを使い果たし、UNHEALTHY YARN 状態に移行するタイミングを追跡します。例えば、コアノードやタスクノードのディスク容量が少ないと、タスクを実行できなくなります。 |
クラスターのストレージがいつ使い果たされるかを検出する | HDFSUtilization メトリクスは、クラスターの合計 HDFS 容量をモニタリングします。クラスターのサイズを変更してコアノードを追加するよう求める場合があります。例えば、HDFS の使用率が高いと、ジョブやクラスターの状態に影響する可能性があります。 |
クラスターが低容量で稼働している場合に検出する | MRLostNodes メトリクスは、1 つ以上のコアノードまたはタスクノードがマスターノードと通信できなくなった状態を追跡します。例えば、マスターノードがコアノードまたはタスクノードにアクセスできない場合です。 |
詳細については、「NO_SLAVE_LEFT でクラスターが終了し、FAILED_BY_MASTER でコアノードが終了する」と「AWSSupport-AnalyzeEMRLogs」を参照してください。
Amazon EMR の CloudWatch メトリクスにアクセスする
Amazon EMR コンソールまたは CloudWatch コンソールを使用して Amazon EMR が CloudWatch に報告するメトリクスを表示できます。CloudWatch CLI コマンドの mon-get-stats
、または CloudWatch の GetMetricStatistics
API を使用してメトリクスを取得することもできます。CloudWatch を使用した Amazon EMR メトリクスの表示または取得の詳細については、「Amazon CloudWatch ユーザーガイド」を参照してください。
注記
Amazon EMR コンソールは、再設計され、使いやすくなりました。古いコンソールと新しいコンソールエクスペリエンスの違いについては、「コンソールの新機能」を参照してください。
Amazon EMR によって CloudWatch に報告されるメトリクス
Amazon EMR がコンソールに報告し、CloudWatch にプッシュするメトリクスを次の表に示します。
Amazon EMR のメトリクス
Amazon EMR は、いくつかのメトリクスのデータを CloudWatch に送信します。すべての Amazon EMR クラスターが、5 分ごとにメトリクスを自動送信します。2 週間分のメトリクスがアーカイブされ、その期間が経過したデータは破棄されます。
AWS/ElasticMapReduce
名前空間には、次のメトリクスが含まれます。
注記
Amazon EMR は、クラスターからメトリクスを取得します。クラスターにアクセスできなくなると、そのクラスターが再度利用できるようになるまでメトリクスは報告されません。
次のメトリクスは、Hadoop 2.x バージョンを実行しているクラスターで使用できます。
メトリクス | 説明 |
---|---|
クラスターステータス | |
IsIdle |
クラスターが作業を行っていないが、まだ有効で課金されていることを示します。タスクもジョブも実行されていない場合は 1 に設定され、それ以外の場合は 0 に設定されます。この値は 5 分間隔で確認され、値が 1 の場合は、確認時にクラスターがアイドル状態だったことのみを示します。5 分間ずっとアイドル状態だったことを示すわけではありません。誤検出を避けるには、5 分ごとの確認で、複数回連続して値が 1 の場合に通知するようアラームを指定する必要があります。たとえば、30 分間にわたってこの値が 1 だった場合に通知するようアラームを指定できます。 ユースケース:クラスターのパフォーマンスを監視する 単位: ブール |
ContainerAllocated |
ResourceManager によって割り当てられるリソース コンテナの数。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
ContainerReserved |
予約されているコンテナの数。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
ContainerPending |
キュー内にあり、まだ割り当てられていないコンテナの数。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
ContainerPendingRatio |
割り当てられたコンテナに対する保留中のコンテナの比率 (ContainerPendingRatio = ContainerPending/ContainerAllocated)。ContainerAllocated = 0 の場合は、ContainerPendingRatio = ContainerPending になります。ContainerPendingRatio の値は、割合 (%) ではなく数値を表します。この値は、コンテナ割り当て動作に基づくクラスターリソースのスケーリングに役立ちます。 単位: Count |
AppsCompleted |
YARN に送信され、完了したアプリケーションの数。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
AppsFailed |
YARN に送信され、完了できなかったアプリケーションの数。 ユースケース:クラスターの進捗状況を監視し、クラスターの状態を監視する 単位: Count |
AppsKilled |
YARN に送信され、強制終了されたアプリケーションの数。 ユースケース:クラスターの進捗状況を監視し、クラスターの状態を監視する 単位: Count |
AppsPending |
YARN に送信され、保留状態になっているアプリケーションの数。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
AppsRunning |
YARN に送信され、実行中であるアプリケーションの数。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
AppsSubmitted |
YARN に送信されたアプリケーションの数。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
ノードのステータス | |
CoreNodesRunning |
動作中のコアノードの数。このメトリクスのデータポイントは、対応するインスタンスグループが存在する場合にのみ報告されます。 ユースケース:クラスターの状態を監視する 単位: Count |
CoreNodesPending |
割り当て待機中のコアノードの数。リクエストされたすべてのコアノードが直ちに使用可能になるとは限りません。このメトリクスでは、保留中のリクエストを報告します。このメトリクスのデータポイントは、対応するインスタンスグループが存在する場合にのみ報告されます。 ユースケース:クラスターの状態を監視する 単位: Count |
LiveDataNodes |
Hadoop から処理を受け取るデータノードの割合。 ユースケース:クラスターの状態を監視する 単位: パーセント |
MRTotalNodes |
MapReduce ジョブで現在使用できるノードの数。YARN メトリクス ユースケース:クラスターの進捗状況を監視する 単位: Count |
MRActiveNodes |
MapReduce のタスクまたはジョブを現在実行しているノードの数。YARN メトリクス ユースケース:クラスターの進捗状況を監視する 単位: Count |
MRLostNodes |
MapReduce に割り当てられており、LOST 状態としてマークされているノードの数。YARN メトリクス ユースケース:クラスターの状態を監視し、クラスターの進捗状況を監視する 単位: Count |
MRUnhealthyNodes |
MapReduce ジョブで使用でき、UNHEALTHY 状態としてマークされているノードの数。YARN メトリクス ユースケース:クラスターの進捗状況を監視する 単位: Count |
MRDecommissionedNodes |
MapReduce アプリケーションに割り当てられており、DECOMMISSIONED 状態としてマークされているノードの数。YARN メトリクス ユースケース:クラスターの状態を監視し、クラスターの進捗状況を監視する 単位: Count |
MRRebootedNodes |
MapReduce で使用でき、再起動され REBOOTED 状態としてマークされているノードの数。YARN メトリクス ユースケース:クラスターの状態を監視し、クラスターの進捗状況を監視する 単位: Count |
MultiMasterInstanceGroupNodesRunning |
実行中のマスターノードの数。 ユースケース: マスターノードの障害のモニタリングと置換 単位: Count |
MultiMasterInstanceGroupNodesRunningPercentage |
リクエストされたマスターノードインスタンス数で実行中のマスターノードの割合 ユースケース: マスターノードの障害のモニタリングと置換 単位: パーセント |
MultiMasterInstanceGroupNodesRequested |
リクエストされたマスターノードの数。 ユースケース: マスターノードの障害のモニタリングと置換 単位: Count |
IO | |
S3BytesWritten |
Amazon S3 に書き込まれたバイト数。このメトリクスは MapReduce ジョブのみを集計し、Amazon EMR の他のワークロードには適用されません。 ユースケース:クラスターのパフォーマンスを分析し、クラスターの進捗状況を監視する 単位: Count |
S3BytesRead |
Amazon S3 から読み込まれたバイト数。このメトリクスは MapReduce ジョブのみを集計し、Amazon EMR の他のワークロードには適用されません。 ユースケース:クラスターのパフォーマンスを分析し、クラスターの進捗状況を監視する 単位: Count |
HDFSUtilization |
現在使用されている HDFS ストレージの割合。 ユースケース:クラスターのパフォーマンスを分析する 単位: パーセント |
HDFSBytesRead |
HDFS からの読み込みバイト数。このメトリクスは MapReduce ジョブのみを集計し、Amazon EMR の他のワークロードには適用されません。 ユースケース:クラスターのパフォーマンスを分析し、クラスターの進捗状況を監視する 単位: Count |
HDFSBytesWritten |
HDFS への書き込みバイト数。このメトリクスは MapReduce ジョブのみを集計し、Amazon EMR の他のワークロードには適用されません。 ユースケース:クラスターのパフォーマンスを分析し、クラスターの進捗状況を監視する 単位: Count |
MissingBlocks |
HDFS にレプリカがないブロックの数。これらのブロックは破損している可能性があります。 ユースケース:クラスターの状態を監視する 単位: Count |
CorruptBlocks |
HDFS が破損しているものと報告するブロックの数。 ユースケース:クラスターの状態を監視する 単位: Count |
TotalLoad |
同時データ転送数の合計。 ユースケース:クラスターの状態を監視する 単位: Count |
MemoryTotalMBMemoryTotalMB |
クラスターでのメモリの合計量。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
MemoryReservedMB |
予約されているメモリの量。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
MemoryAvailableMB |
割り当てに使用できるメモリの量。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
YARNMemoryAvailablePercentage |
YARN に対する利用可能な残りのメモリの割合 (YARNMemoryAvailablePercentage = MemoryAvailableMB / MemoryTotalMB)。この値は、YARN のメモリの使用状況に基づくクラスターリソースのスケーリングに役立ちます。 単位: パーセント |
MemoryAllocatedMB |
クラスターに割り当てられているメモリの量。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
PendingDeletionBlocks |
削除用にマークされているブロックの数。 ユースケース:クラスターの進捗状況を監視し、クラスターの状態を監視する 単位: Count |
UnderReplicatedBlocks |
1 回以上レプリケートする必要があるブロックの数。 ユースケース:クラスターの進捗状況を監視し、クラスターの状態を監視する 単位: Count |
DfsPendingReplicationBlocks |
ブロックレプリケーションのステータス: レプリケーション中のブロック、レプリケーションリクエストの有効期間、および成功しなかったレプリケーションリクエスト。 ユースケース:クラスターの進捗状況を監視し、クラスターの状態を監視する 単位: Count |
CapacityRemainingGB |
残りの HDFS ディスク容量の合計。 ユースケース:クラスターの進捗状況を監視し、クラスターの状態を監視する 単位: Count |
次に示すのは Hadoop の 1 メトリクスです。
メトリクス | 説明 |
---|---|
クラスターステータス | |
IsIdle |
クラスターが作業を行っていないが、まだ有効で課金されていることを示します。タスクもジョブも実行されていない場合は 1 に設定され、それ以外の場合は 0 に設定されます。この値は 5 分間隔で確認され、値が 1 の場合は、確認時にクラスターがアイドル状態だったことのみを示します。5 分間ずっとアイドル状態だったことを示すわけではありません。誤検出を避けるには、5 分ごとの確認で、複数回連続して値が 1 の場合に通知するようアラームを指定する必要があります。たとえば、30 分間にわたってこの値が 1 だった場合に通知するようアラームを指定できます。 ユースケース:クラスターのパフォーマンスを監視する 単位: ブール |
JobsRunning |
クラスターの、現在実行中のジョブの数。 ユースケース:クラスターの状態を監視する 単位: Count |
JobsFailed |
クラスターの、失敗したジョブの数。 ユースケース:クラスターの状態を監視する 単位: Count |
マップ/低減 | |
MapTasksRunning |
各ジョブの実行マップタスクの数。スケジューラがインストールされ、複数のジョブが実行中の場合は、複数のグラフが生成されます。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
MapTasksRemaining |
各ジョブの残存マップタスクの数。スケジューラがインストールされ、複数のジョブが実行中の場合は、複数のグラフが生成されます。残存マップタスクとは、実行中、強制終了済み、完了済み以外の状態のものをいいます。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
MapSlotsOpen |
未使用のマップタスクの容量。指定されたクラスターのマップタスクの最大数から、そのクラスターで現在実行中のマップタスクの合計数を差し引いて算出します。 ユースケース:クラスターのパフォーマンスを分析する 単位: Count |
RemainingMapTasksPerSlot |
合計残存マップタスク数と、クラスター内で使用できる合計マップスロット数の比率。 ユースケース:クラスターのパフォーマンスを分析する 単位: Ratio |
ReduceTasksRunning |
各ジョブの実行削減タスクの数。スケジューラがインストールされ、複数のジョブが実行中の場合は、複数のグラフが生成されます。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
ReduceTasksRemaining |
各ジョブの残存削減タスクの数。スケジューラがインストールされ、複数のジョブが実行中の場合は、複数のグラフが生成されます。 ユースケース:クラスターの進捗状況を監視する 単位: Count |
ReduceSlotsOpen |
未使用の削減タスクの容量。指定されたクラスターの削減タスクの最大キャパシティーから、そのクラスターで現在実行中の削減タスクの数を差し引いて算出します。 ユースケース:クラスターのパフォーマンスを分析する 単位: Count |
ノードのステータス | |
CoreNodesRunning |
動作中のコアノードの数。このメトリクスのデータポイントは、対応するインスタンスグループが存在する場合にのみ報告されます。 ユースケース:クラスターの状態を監視する 単位: Count |
CoreNodesPending |
割り当て待機中のコアノードの数。リクエストされたすべてのコアノードが直ちに使用可能になるとは限りません。このメトリクスでは、保留中のリクエストを報告します。このメトリクスのデータポイントは、対応するインスタンスグループが存在する場合にのみ報告されます。 ユースケース:クラスターの状態を監視する 単位: Count |
LiveDataNodes |
Hadoop から処理を受け取るデータノードの割合。 ユースケース:クラスターの状態を監視する 単位: パーセント |
TaskNodesRunning |
動作中のタスクノードの数。このメトリクスのデータポイントは、対応するインスタンスグループが存在する場合にのみ報告されます。 ユースケース:クラスターの状態を監視する 単位: Count |
TaskNodesPending |
割り当て待機中のタスクノードの数。リクエストされたすべてのタスクノードが直ちに使用可能になるとは限りません。このメトリクスでは、保留中のリクエストを報告します。このメトリクスのデータポイントは、対応するインスタンスグループが存在する場合にのみ報告されます。 ユースケース:クラスターの状態を監視する 単位: Count |
LiveTaskTrackers |
機能しているタスクトラッカーの割合。 ユースケース:クラスターの状態を監視する 単位: パーセント |
IO | |
S3BytesWritten |
Amazon S3 に書き込まれたバイト数。このメトリクスは MapReduce ジョブのみを集計し、Amazon EMR の他のワークロードには適用されません。 ユースケース:クラスターのパフォーマンスを分析し、クラスターの進捗状況を監視する 単位: Count |
S3BytesRead |
Amazon S3 から読み込まれたバイト数。このメトリクスは MapReduce ジョブのみを集計し、Amazon EMR の他のワークロードには適用されません。 ユースケース:クラスターのパフォーマンスを分析し、クラスターの進捗状況を監視する 単位: Count |
HDFSUtilization |
現在使用されている HDFS ストレージの割合。 ユースケース:クラスターのパフォーマンスを分析する 単位: パーセント |
HDFSBytesRead |
HDFS からの読み込みバイト数。 ユースケース:クラスターのパフォーマンスを分析し、クラスターの進捗状況を監視する 単位: Count |
HDFSBytesWritten |
HDFS への書き込みバイト数。 ユースケース:クラスターのパフォーマンスを分析し、クラスターの進捗状況を監視する 単位: Count |
MissingBlocks |
HDFS にレプリカがないブロックの数。これらのブロックは破損している可能性があります。 ユースケース:クラスターの状態を監視する 単位: Count |
TotalLoad |
クラスター内のすべての DataNode によって報告されたリーダーとライターの現在の合計数。 ユースケース: 高い I/O がジョブ実行パフォーマンスの低下につながる可能性の度合いを診断します。DataNode デーモンを実行しているワーカーノードは、Map タスクと Reduce タスクも実行する必要があります。長い時間が経過しても TotalLoad 値が永続的に高い場合は、高い I/O がパフォーマンス低下の原因となる可能性があることを示します。この値の一時的なスパイクは一般的なものであり、通常問題を示すものではありません。 単位: Count |
クラスター容量メトリクス
次のメトリクスは、クラスターの現在の容量またはターゲットの容量を示します。これらのメトリクスは、マネージドスケーリングまたは自動終了が有効になっているときにのみ使用できます。
インスタンスフリートで構成されるクラスターの場合、クラスター容量のメトリクスは Units
単位で測定されます。インスタンスグループで構成されるクラスターの場合、クラスター容量のメトリクスは、マネージドスケーリングポリシーで使用される単位タイプに基づき、Nodes
単位または VCPU
単位で測定されます。詳細については、「Amazon EMR 管理ガイド」の「EMR マネージドスケーリングの使用」を参照してください。
メトリクス | 説明 |
---|---|
|
マネージドスケーリングによって決定された、クラスター内の単位/ノード/vCPU の合計ターゲット数。 単位: Count |
|
実行中のクラスターで使用可能な単位/ノード/vCPU の現在の合計数。クラスターのサイズ変更がリクエストされると、クラスターに新しいインスタンスが追加または削除された後に、このメトリクスが更新されます。 単位: Count |
|
マネージドスケーリングによって決定された、クラスター内の CORE 単位/ノード/vCPU のターゲット数。 単位: Count |
|
クラスターで実行されている CORE 単位/ノード/vCPU の現在の数。 単位: Count |
|
マネージドスケーリングによって決定された、クラスター内の TASK 単位/ノード/vCPU のターゲット数。 単位: Count |
|
クラスターで実行されている TASK 単位/ノード/vCPU の現在の数。 単位: Count |
Amazon EMR は、自動終了ポリシーを使用して自動終了を有効にすると、次のメトリクスを 1 分単位で出力します。一部のメトリクスは Amazon EMR バージョン 6.4.0 以降でのみ利用できます。自動終了の詳細については、「自動終了ポリシーを使用する」を参照してください。
メトリクス | 説明 |
---|---|
TotalNotebookKernels |
クラスターで実行中とアイドル状態のノートブックカーネルの合計数。 このメトリクスは Amazon EMR バージョン 6.4.0 以降でのみ利用できます。 |
AutoTerminationIsClusterIdle |
クラスターが使用中かどうかを示します。 値 0 は、クラスターが次のコンポーネントのいずれかによってアクティブに使用されていることを示します。
値 1 は、クラスターがアイドル状態であることを示します。Amazon EMR は、クラスターの連続的なアイドル状態 ( |
Amazon EMR メトリクスのディメンション
Amazon EMR データは、次の表のいずれかのディメンションを使用してフィルタリングできます。
ディメンション | 説明 |
---|---|
JobFlowId | クラスター ID と同一で、j-XXXXXXXXXXXXX という形式のクラスターの一意の識別子です。この値を見つけるには、Amazon EMR コンソールでクラスターをクリックします。 |