モニタリング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 ロケーションに送信されます。これは、s3MonitoringConfiguration
が create-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 バケットにアップロードしません。