ジョブのモニタリングとデバッグ
AWS Glue ジョブに関するメトリクスを収集して AWS Glue および Amazon CloudWatch コンソールで可視化し、問題を特定して修正できます。AWS Glue ジョブのプロファイリングには、以下のステップが必要です。
-
メトリクスを有効にする:
-
ジョブ定義で [Job metrics (ジョブメトリクス)] オプションを有効にします。AWS Glue コンソールでプロファイリングを有効にするか、ジョブに対するパラメータとして有効にできます。詳細については、「Spark ジョブのジョブプロパティの定義」または「AWS Glue ジョブでジョブパラメータを使用する」を参照してください。
-
ジョブ定義で [AWS Glue オブザーバビリティメトリクス] オプションを有効にします。AWS Glue コンソールでオブザーバビリティを有効にするか、ジョブに対するパラメータとして有効にできます。詳細については、「AWS Glue オブザーバビリティメトリクスを使用したモニタリング」を参照してください。
-
-
ジョブスクリプトが
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() ジョブを実行します。
-
メトリクスを可視化する:
AWS Glue コンソールでジョブメトリクスを可視化し、ドライバまたはエグゼキュターの異常なメトリクスを識別します。
オブザーバビリティメトリクスは、「ジョブ実行モニタリング」ページ、「ジョブ実行詳細」ページ、または Amazon CloudWatch で確認できます。詳細については、「AWS Glue オブザーバビリティメトリクスを使用したモニタリング」を参照してください。
特定されたメトリクスを使用して根本原因を絞り込みます。
必要に応じて、識別されたドライバーまたはジョブエグゼキュターのログストリームを使用して根本原因を確認します。
AWS Glue オブザーバビリティメトリクスのユースケース