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

モニタリングSpark ジョブ

障害のモニタリングとトラブルシューティングをできるようにするには、エンドポイントで起動したジョブで Amazon S3、Amazon CloudWatch Logs、またはその両方にログ情報を送信できるようにインタラクティブエンドポイントを設定します。以下のセクションでは、EKS での Amazon EMR インタラクティブエンドポイントで起動した Spark ジョブの Amazon S3 へ Spark アプリケーションログを送信する方法について説明します。

Amazon S3 ログ用の IAM ポリシーを設定する

カーネルが Amazon S3 にログデータを送信できるようにするには、ジョブ実行ロールのアクセス権限ポリシーに次のアクセス権限を含める必要があります。amzn-s3-demo-destination-bucket をログ記録バケットの名前に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket", "arn:aws:s3:::amzn-s3-demo-logging-bucket/*", ] } ] }
注記

EKS での Amazon EMR は、S3 バケットを作成することもできます。S3 バケットが利用できない場合は、IAM ポリシーに s3:CreateBucket アクセス権限を含めてください。

S3 バケットにログを送信するために必要なアクセス権限を実行ロールに付与すると、ログデータは次の Amazon S3 ロケーションに送信されます。これは、s3MonitoringConfigurationcreate-managed-endpoint リクエストの monitoringConfiguration セクションで渡されるときに起こります。

  • ドライバーログlogUri/virtual-cluster-id/endpoints/endpoint-id/containers/spark-application-id/spark-application-id-driver/(stderr.gz/stdout.gz)

  • エグゼキュターログlogUri/virtual-cluster-id/endpoints/endpoint-id/containers/spark-application-id/executor-pod-name-exec-<Number>/(stderr.gz/stdout.gz)

注記

EKS での Amazon EMR は、エンドポイントログを S3 バケットにアップロードしません。