ジョブのモニタリングとデバッグ - AWS Glue

ジョブのモニタリングとデバッグ

AWS Glue ジョブに関するメトリクスを収集して AWS Glue および Amazon CloudWatch コンソールで可視化し、問題を特定して修正できます。AWS Glue ジョブのプロファイリングには、以下のステップが必要です。

  1. メトリクスを有効にする:

    1. ジョブ定義で [Job metrics (ジョブメトリクス)] オプションを有効にします。AWS Glue コンソールでプロファイリングを有効にするか、ジョブに対するパラメータとして有効にできます。詳細については、「Spark ジョブのジョブプロパティの定義」または「AWS Glue ジョブでジョブパラメータを使用する」を参照してください。

    2. ジョブ定義で [AWS Glue オブザーバビリティメトリクス] オプションを有効にします。AWS Glue コンソールでオブザーバビリティを有効にするか、ジョブに対するパラメータとして有効にできます。詳細については、「AWS Glue オブザーバビリティメトリクスを使用したモニタリング」を参照してください。

  2. ジョブスクリプトが GlueContext を初期化することを確認します。たとえば、次のスクリプトスニペットは GlueContext を初期化し、プロファイリングされたコードが配置されるスクリプト内の場所を示しています。この一般的な形式は、以下のデバッグシナリオで使用されます。

    import sys from awsglue.transforms import * from awsglue.utils import getResolvedOptions from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.job import Job import time ## @params: [JOB_NAME] args = getResolvedOptions(sys.argv, ['JOB_NAME']) sc = SparkContext() glueContext = GlueContext(sc) spark = glueContext.spark_session job = Job(glueContext) job.init(args['JOB_NAME'], args) ... ... code-to-profile ... ... job.commit()
  3. ジョブを実行します。

  4. メトリクスを可視化する:

    1. AWS Glue コンソールでジョブメトリクスを可視化し、ドライバまたはエグゼキュターの異常なメトリクスを識別します。

    2. オブザーバビリティメトリクスは、「ジョブ実行モニタリング」ページ、「ジョブ実行詳細」ページ、または Amazon CloudWatch で確認できます。詳細については、「AWS Glue オブザーバビリティメトリクスを使用したモニタリング」を参照してください。

  5. 特定されたメトリクスを使用して根本原因を絞り込みます。

  6. 必要に応じて、識別されたドライバーまたはジョブエグゼキュターのログストリームを使用して根本原因を確認します。

AWS Glue オブザーバビリティメトリクスのユースケース