EMR Serverless アプリケーションとジョブのモニタリング - Amazon EMR

EMR Serverless アプリケーションとジョブのモニタリング

EMR Serverless の Amazon CloudWatch メトリクスを使用すると、1 分間の CloudWatch メトリクスを受け取り、CloudWatch ダッシュボードにアクセスして、EMR Serverless アプリケーションのパフォーマンスとオペレーションをほぼリアルタイムで表示できます。

EMR Serverless は CloudWatch に毎分メトリクスを送信します。EMR Serverless は、これらのメトリクスをアプリケーションレベルだけでなく、ジョブ、ワーカータイプ、容量の割り当てタイプのレベルで出力します。

開始するには、EMR Serverless GitHub リポジトリに用意されている EMR Serverless CloudWatch ダッシュボードテンプレートを使用してデプロイします。

注記

EMR Serverless インタラクティブワークロードでは、アプリケーションレベルのモニタリングのみが有効化されており、新しいワーカータイプのディメンション Spark_Kernel があります。インタラクティブワークロードをモニタリングおよびデバッグするには、EMR Studio Workspace 内からログと Apache Spark UI を表示します。

以下の表は、AWS/EMRServerless 名前空間内で使用可能な EMR Serverless ディメンションを示しています。

EMR Serverless メトリクスのディメンション
ディメンション 説明
ApplicationId

EMR Serverless アプリケーションのすべてのメトリクスをフィルタリングします。

JobId

EMR Serverless ジョブ実行のすべてのメトリクスをフィルタリングします。

WorkerType

特定のワーカータイプのすべてのメトリクスをフィルタリングします。例えば、Spark ジョブの SPARK_DRIVERSPARK_EXECUTORS をフィルタリングできます。

CapacityAllocationType

特定の容量割り当てタイプのすべてのメトリクスをフィルタリングします。例えば、事前に初期化された容量と、その他すべての OnDemandCapacity に対して PreInitCapacity をフィルタリングできます。

アプリケーションレベルのモニタリング

Amazon CloudWatch メトリクスを使用して、EMR Serverless アプリケーションレベルで容量の使用状況をモニタリングできます。CloudWatch ダッシュボードでアプリケーション容量の使用状況をモニタリングするように 1 つのビューを設定することもできます。

EMR Serverless アプリケーションメトリクス
メトリクス 説明 プライマリディメンション セカンダリディメンション
CPUAllocated

割り当てられた vCPU の合計数。

ApplicationId ApplicationId, WorkerType, CapacityAllocationType
IdleWorkerCount

アイドル状態のワーカーの合計数。

ApplicationId ApplicationId, WorkerType, CapacityAllocationType
MaxCPUAllowed

アプリケーションに許容される CPU の最大数。

ApplicationId 該当なし
MaxMemoryAllowed

アプリケーションに許容されるメモリの最大 GB 数。

ApplicationId 該当なし
MaxStorageAllowed

アプリケーションに許容されるストレージの最大 GB 数。

ApplicationId 該当なし
MemoryAllocated

割り当てられたメモリの合計 GB 数。

ApplicationId ApplicationId, WorkerType, CapacityAllocationType
PendingCreationWorkerCount

作成保留中のワーカーの合計数。

ApplicationId ApplicationId, WorkerType, CapacityAllocationType
RunningWorkerCount

アプリケーションで使用されているワーカーの合計数。

ApplicationId ApplicationId, WorkerType, CapacityAllocationType
StorageAllocated

割り当てられたディスクストレージの合計 GB 数。

ApplicationId ApplicationId, WorkerType, CapacityAllocationType
TotalWorkerCount

使用可能なワーカーの合計数。

ApplicationId ApplicationId, WorkerType, CapacityAllocationType

ジョブレベルのモニタリング

Amazon EMR Serverless は、1 分ごとに次のジョブレベルのメトリクスを Amazon CloudWatch に送信します。ジョブ実行集計のメトリクス値は、ジョブ実行状態別に表示できます。各メトリクスの単位はカウントです。

EMR Serverless ジョブレベルのメトリクス
メトリクス 説明 プライマリディメンション
SubmittedJobs

送信済み状態のジョブの数。

ApplicationId
PendingJobs

保留中状態のジョブの数。

ApplicationId
ScheduledJobs

スケジュールされた状態のジョブの数。

ApplicationId
RunningJobs

実行中状態のジョブの数。

ApplicationId
SuccessJobs

成功状態のジョブの数。

ApplicationId
FailedJobs

失敗状態のジョブの数。

ApplicationId
CancellingJobs

キャンセル中状態のジョブの数。

ApplicationId
CancelledJobs

キャンセル済み状態のジョブの数。

ApplicationId

エンジン固有のアプリケーション UI を使用して、実行中の EMR Serverless ジョブと完了した EMR Serverless ジョブの両方のエンジン固有のメトリクスをモニタリングできます。実行中のジョブの UI を表示すると、リアルタイムの更新が反映されたライブアプリケーション UI が表示されます。完了したジョブの UI を表示すると、永続アプリケーション UI が表示されます。

ジョブの実行

実行中の EMR Serverless ジョブでは、エンジン固有のメトリクスを示すリアルタイムインターフェイスを表示できます。Apache Spark UI または Hive Tez UI のいずれかを使用して、ジョブをモニタリングおよびデバッグできます。これらの UI にアクセスするには、EMR Studio コンソールを使用するか、AWS Command Line Interfaceで安全な URL エンドポイントをリクエストします。

完了したジョブ

完了した EMR Serverless ジョブについては、Spark History Server または Persistent Hive Tez UI を使用して、Spark または Hive ジョブ実行のジョブの詳細、ステージ、タスク、メトリクスを表示できます。これらの UI にアクセスするには、EMR Studio コンソールを使用するか、AWS Command Line Interface で安全な URL エンドポイントをリクエストします。

ジョブワーカーレベルのモニタリング

Amazon EMR Serverless は、AWS/EMRServerless 名前空間および Job Worker Metrics メトリクスグループで利用可能な以下のジョブワーカーレベルのメトリクスを Amazon CloudWatch に送信します。EMR Serverless は、ジョブレベル、ワーカータイプ、容量割り当てタイプのレベルでジョブの実行中に個別のワーカーからデータポイントを収集します。ApplicationId をディメンションとして使用して、同じアプリケーションに属する複数のジョブをモニタリングできます。

EMR Serverless ジョブワーカーレベルのメトリクス
メトリクス 説明 単位 プライマリディメンション セカンダリディメンション
WorkerCpuAllocated

ジョブ実行でワーカーに割り当てられた vCPU コアの合計数。

なし JobId ApplicationIdWorkerType、および CapacityAllocationType
WorkerCpuUsed

ジョブ実行でワーカーによって使用されている vCPU コアの合計数。

なし JobId ApplicationIdWorkerType、および CapacityAllocationType
WorkerMemoryAllocated

ジョブ実行でワーカーに割り当てられたメモリの合計 GB 数。

ギガバイト数 (GB) JobId ApplicationIdWorkerType、および CapacityAllocationType
WorkerMemoryUsed

ジョブ実行でワーカーによって使用されるメモリの合計 GB 数。

ギガバイト数 (GB) JobId ApplicationIdWorkerType、および CapacityAllocationType
WorkerEphemeralStorageAllocated

ジョブ実行でワーカーに割り当てられたエフェメラルストレージのバイト数。

ギガバイト数 (GB) JobId ApplicationIdWorkerType、および CapacityAllocationType
WorkerEphemeralStorageUsed

ジョブ実行でワーカーによって使用されるエフェメラルストレージのバイト数。

ギガバイト数 (GB) JobId ApplicationIdWorkerType、および CapacityAllocationType
WorkerStorageReadBytes

ジョブ実行でワーカーがストレージから読み取るバイト数。

バイト JobId ApplicationIdWorkerType、および CapacityAllocationType
WorkerStorageWriteBytes

ジョブ実行でワーカーからストレージに書き込まれたバイト数。

バイト JobId ApplicationIdWorkerType、および CapacityAllocationType

以下の手順では、さまざまなタイプのメトリクスを表示する方法について説明します。

Console
コンソールを使用してアプリケーション UI にアクセスするには
  1. コンソールからの開始方法の手順を使用して、EMR Studio の EMR Serverless アプリケーションに移動します。

  2. 実行中ジョブのエンジン固有のアプリケーション UI とログを表示するには:

    1. RUNNING ステータスのジョブを選択します。

    2. [アプリケーションの詳細] ページでジョブを選択するか、ジョブの [ジョブの詳細] ページに移動します。

    3. [UI を表示] ドロップダウンメニューで、[Spark UI] または [Hive Tez UI] のいずれかを選択して、ジョブタイプのアプリケーション UI に移動します。

    4. Spark エンジンログを表示するには、Spark UI の [エグゼキュター] タブに移動し、ドライバーのログリンクを選択します。Hive エンジンログを表示するには、Hive Tez UI で適切な DAG のログリンクを選択します。

  3. 完了したジョブのエンジン固有のアプリケーション UI とログを表示するには:

    1. SUCCESS ステータスのジョブを選択します。

    2. アプリケーションの [アプリケーションの詳細] ページでジョブを選択するか、ジョブの [ジョブの詳細] ページに移動します。

    3. [UI を表示] ドロップダウンメニューで、[Spark 履歴サーバー] または [Persistent Hive Tez UI] のいずれかを選択して、ジョブタイプのアプリケーション UI に移動します。

    4. Spark エンジンログを表示するには、Spark UI の [エグゼキュター] タブに移動し、ドライバーのログリンクを選択します。Hive エンジンログを表示するには、Hive Tez UI で適切な DAG のログリンクを選択します。

AWS CLI
AWS CLI を使用してアプリケーション UI にアクセスするには
  • 実行中のジョブと完了したジョブの両方でアプリケーション UI にアクセスするために使用できる URL を生成するには、GetDashboardForJobRun API を呼び出します。

    aws emr-serverless get-dashboard-for-job-run / --application-id <application-id> / --job-run-id <job-id>

    生成した URL は 1 時間有効です。