CloudWatch で Amazon EMR のメトリクスをモニタリングする - Amazon EMR

CloudWatch で Amazon EMR のメトリクスをモニタリングする

メトリクスは 5 分ごとに更新され、自動的に収集され、すべての Amazon EMR クラスターの CloudWatch にプッシュされます。この間隔は設定できません。CloudWatch で報告される Amazon EMR メトリクスに料金はかかりません。これらの 5 分のデータポイントメトリクスは 63 日間アーカイブされ、その期間が経過したデータは破棄されます。

Amazon EMR のメトリクスを使用するには、どうすればよいですか?

Amazon EMR で報告されるメトリクスの一般的な使用法を次の表に示します。ここで紹介するのは使用開始するための提案事項であり、総括的な一覧ではありません。Amazon EMR によって報告されるメトリクスの詳細なリストについては、「Amazon EMR によって CloudWatch に報告されるメトリクス」を参照してください。

どうすればよいか? 関連するメトリクス
クラスターの進行を追跡する RunningMapTasksRemainingMapTasksRunningReduceTasks、および 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 コンソールは、再設計され、使いやすくなりました。古いコンソールと新しいコンソールエクスペリエンスの違いについては、「コンソールの新機能」を参照してください。

New console
新しいコンソールを使用してメトリクスを表示するには
  1. AWS Management Consoleにサインインし、Amazon EMR コンソール (https://console.aws.amazon.com/emr) を開きます。

  2. 左側のナビゲーションペインの [EMR on EC2][クラスター] を選択し、メトリクスを表示するクラスターを選択します。選択すると、クラスターの詳細ページが開きます。

  3. クラスターの詳細ページの [モニタリング] タブを選択します。[クラスターステータス][ノードのステータス] または [入力と出力] オプションのいずれか 1 つを選択して、クラスターの進行状況と状態に関するレポートをロードします。

  4. 表示するメトリクスを選択したら、各グラフを拡大します。グラフの時間枠を絞り込むには、あらかじめ入力されているオプションを選択するか、[カスタム] を選択します。

Old console
古いコンソールを使用してメトリクスを表示するには
  1. Amazon EMR コンソール (https://console.aws.amazon.com/elasticmapreduce/) を開きます。

  2. クラスターのメトリクスを表示するには、クラスターを選択して、[Summary] ペインを表示します。

  3. [Monitoring] を選択して、クラスターに関する情報を表示します。[クラスターステータス][マップ/低減][ノードステータス]、または [IO] というタブのいずれか 1 つを選択して、クラスターの進行状況と状態に関するレポートをロードします。

  4. 表示するメトリクスを選択したら、グラフサイズを選択できます。[Start] および [End] フィールドを編集して、特定の時間枠にメトリクスを絞り込みます。

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 メトリクス mapred.resourcemanager.TotalNodes と同等。

ユースケース:クラスターの進捗状況を監視する

単位: Count

MRActiveNodes

MapReduce のタスクまたはジョブを現在実行しているノードの数。YARN メトリクス mapred.resourcemanager.NoOfActiveNodes と同等。

ユースケース:クラスターの進捗状況を監視する

単位: Count

MRLostNodes

MapReduce に割り当てられており、LOST 状態としてマークされているノードの数。YARN メトリクス mapred.resourcemanager.NoOfLostNodes と同等。

ユースケース:クラスターの状態を監視し、クラスターの進捗状況を監視する

単位: Count

MRUnhealthyNodes

MapReduce ジョブで使用でき、UNHEALTHY 状態としてマークされているノードの数。YARN メトリクス mapred.resourcemanager.NoOfUnhealthyNodes と同等。

ユースケース:クラスターの進捗状況を監視する

単位: Count

MRDecommissionedNodes

MapReduce アプリケーションに割り当てられており、DECOMMISSIONED 状態としてマークされているノードの数。YARN メトリクス mapred.resourcemanager.NoOfDecommissionedNodes と同等。

ユースケース:クラスターの状態を監視し、クラスターの進捗状況を監視する

単位: Count

MRRebootedNodes

MapReduce で使用でき、再起動され REBOOTED 状態としてマークされているノードの数。YARN メトリクス mapred.resourcemanager.NoOfRebootedNodes と同等。

ユースケース:クラスターの状態を監視し、クラスターの進捗状況を監視する

単位: 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 マネージドスケーリングの使用」を参照してください。

メトリクス 説明
  • TotalUnitsRequested

  • TotalNodesRequested

  • TotalVCPURequested

マネージドスケーリングによって決定された、クラスター内の単位/ノード/vCPU の合計ターゲット数。

単位: Count

  • TotalUnitsRunning

  • TotalNodesRunning

  • TotalVCPURunning

実行中のクラスターで使用可能な単位/ノード/vCPU の現在の合計数。クラスターのサイズ変更がリクエストされると、クラスターに新しいインスタンスが追加または削除された後に、このメトリクスが更新されます。

単位: Count

  • CoreUnitsRequested

  • CoreNodesRequested

  • CoreVCPURequested

マネージドスケーリングによって決定された、クラスター内の CORE 単位/ノード/vCPU のターゲット数。

単位: Count

  • CoreUnitsRunning

  • CoreNodesRunning

  • CoreVCPURunning

クラスターで実行されている CORE 単位/ノード/vCPU の現在の数。

単位: Count

  • TaskUnitsRequested

  • TaskNodesRequested

  • TaskVCPURequested

マネージドスケーリングによって決定された、クラスター内の TASK 単位/ノード/vCPU のターゲット数。

単位: Count

  • TaskUnitsRunning

  • TaskNodesRunning

  • TaskVCPURunning

クラスターで実行されている TASK 単位/ノード/vCPU の現在の数。

単位: Count

Amazon EMR は、自動終了ポリシーを使用して自動終了を有効にすると、次のメトリクスを 1 分単位で出力します。一部のメトリクスは Amazon EMR バージョン 6.4.0 以降でのみ利用できます。自動終了の詳細については、「自動終了ポリシーを使用する」を参照してください。

メトリクス 説明
TotalNotebookKernels クラスターで実行中とアイドル状態のノートブックカーネルの合計数。

このメトリクスは Amazon EMR バージョン 6.4.0 以降でのみ利用できます。

AutoTerminationIsClusterIdle クラスターが使用中かどうかを示します。

0 は、クラスターが次のコンポーネントのいずれかによってアクティブに使用されていることを示します。

  • YARN アプリケーション

  • HDFS

  • ノートブック

  • Spark History Server などのクラスター上の UI

1 は、クラスターがアイドル状態であることを示します。Amazon EMR は、クラスターの連続的なアイドル状態 (AutoTerminationIsClusterIdle = 1) を検査します。クラスターのアイドル時間が自動終了ポリシーの IdleTimeout 値と等しくなると、Amazon EMR はクラスターを終了します。

Amazon EMR メトリクスのディメンション

Amazon EMR データは、次の表のいずれかのディメンションを使用してフィルタリングできます。

ディメンション 説明
JobFlowId クラスター ID と同一で、j-XXXXXXXXXXXXX という形式のクラスターの一意の識別子です。この値を見つけるには、Amazon EMR コンソールでクラスターをクリックします。