ジョブのモニタリング - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ジョブのモニタリング

Amazon CloudWatch Events を使用して、Amazon EMR on EKS 仮想クラスターで実行されるジョブを追跡できます。イベントを使用して、仮想クラスターで実行しているジョブのアクティビティと正常性を追跡できます。以下の各トピックでは、リソースの正常性を維持するためにモニタリングを効果的に設定する方法を示します。

Amazon CloudWatch Events でジョブをモニタリングする

Amazon EMR on EKS では、ジョブ実行の状態が変化したときにイベントが出力されます。各イベントが提供する情報には、そのイベントが発生した日時のほか、仮想クラスターの ID や影響を受けたジョブ実行の ID などの詳細が含まれています。

イベントを使用して、仮想クラスターで実行しているジョブのアクティビティと正常性を追跡できます。また、Amazon CloudWatch Events を使用すると、指定したパターンと一致するイベントがジョブ実行によって生成された場合に実行するアクションを定義できます。イベントは、ジョブ実行のライフサイクル中に特定の発生をモニタリングするのに便利です。例えば、ジョブ実行の状態が submitted から running に変化するタイミングをモニタリングできます。CloudWatch イベントの詳細については、「Amazon EventBridge ユーザーガイド」を参照してください。

次の表は、Amazon EMR on EKS のイベント、イベントが示す状態や状態の変化、イベントの重要度、イベントメッセージを示しています。各イベントは、イベントのストリームに自動的に送信される JSON オブジェクトとして表されます。JSON オブジェクトにはイベントの詳細が含まれます。JSON オブジェクトは、CloudWatch Events を使用してイベント処理のルールを設定する場合に特に重要です。ルールでは JSON オブジェクトでパターンのマッチングが行われるからです。詳細については、「Amazon EventBridge ユーザーガイド」の「Amazon EventBridge のイベントパターン」と「Amazon EMR on EKS イベント」を参照してください。

ジョブ実行の状態変更イベント
都道府県 緊急度 メッセージ
SUBMITTED INFO Time UTC に、ジョブ実行 JobRunId (JobRunName) が仮想クラスター VirtualClusterId に正常に送信されました。
RUNNING INFO 仮想クラスター VirtualClusterId 内のジョブ実行 JobRunId (JobRunName) が、Time に実行を開始しました。
COMPLETED INFO 仮想クラスター VirtualClusterId 内のジョブ実行 jobRunId (JobRunName) が Time に完了しました。ジョブ実行は Time に実行を開始し、完了するまでに Num 分かかりました。
CANCELLED WARN 仮想クラスター VirtualClusterId 内のジョブ実行 JobRunId (JobRunName) のキャンセルリクエストが Time に成功し、ジョブ実行がキャンセルされました。
FAILED ERROR 仮想クラスター VirtualClusterId 内のジョブ実行 JobRunId (JobRunName) が Time に失敗しました。

CloudWatch Events で Amazon EMR on EKS を自動化する

Amazon CloudWatch Events を使用して AWS サービスを自動化すると、アプリケーションの可用性の問題やリソースの変更などのシステムイベントに対応できます。AWS のサービスからのイベントは、ほぼリアルタイムに CloudWatch Events に送信されます。どのイベントに興味があるのか、イベントがルールに一致した場合にどのように自動的に実行するアクションをとるのか簡単なルールを指定して書き込みすることができます。自動的にトリガーできるオペレーションには、以下が含まれます。

  • AWS Lambda 関数の呼び出し

  • Amazon EC2 Run Command の呼び出し

  • Amazon Kinesis Data Streams へのイベントの中継

  • AWS Step Functions ステートマシンのアクティブ化

  • Amazon Simple Notification Service (SNS) トピックまたは Amazon Simple Queue Service (SQS) キューの通知

Amazon EMR on EKS で CloudWatch Events を使用する例は次のとおりです。

  • ジョブ実行が成功したときの Lambda 関数のアクティブ化

  • ジョブ実行が失敗したときの Amazon SNS トピックの通知

"detail-type:" "EMR Job Run State Change" の CloudWatch Events は、SUBMITTEDRUNNINGCANCELLEDFAILEDCOMPLETED の状態が変化したときに Amazon EMR on EKS によって生成されます。

例: Lambda を呼び出すルールを設定する

次の手順に従って、"EMR Job Run State Change" イベントの発生時に Lambda を呼び出す CloudWatch Events ルールを設定します。

aws events put-rule \ --name cwe-test \ --event-pattern '{"detail-type": ["EMR Job Run State Change"]}'

次のように、所有する Lambda 関数を新しいターゲットとして追加し、Lambda 関数を呼び出すためのアクセス許可を CloudWatch Events に付与します。123456789012 は自分のアカウント ID に置き換えます。

aws events put-targets \ --rule cwe-test \ --targets Id=1,Arn=arn:aws:lambda:us-east-1:123456789012:function:MyFunction
aws lambda add-permission \ --function-name MyFunction \ --statement-id MyId \ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com
注記

通知イベントは順番が間違っていたり欠落していたりする可能性があるため、通知イベントの順序や有無に依存するプログラムは作成できません。イベントは、ベストエフォートベースで発生します。

Amazon CloudWatch Events を使用して再試行ポリシーでジョブのドライバーポッドを監視する

CloudWatch イベントを使用すると、再試行ポリシーのあるジョブで作成されたドライバーポッドを監視できます。詳細については、このガイドの「再試行ポリシーを使用してジョブをモニタリングする」を参照してください。