Amazon S3 ログを使用するようにジョブ実行を設定する - Amazon EMR

Amazon S3 ログを使用するようにジョブ実行を設定する

ジョブの進行状況をモニタリングし、障害のトラブルシューティングをできるようにするには、Amazon S3、Amazon CloudWatch Logs、またはその両方にログ情報を送信するようにジョブを設定する必要があります。このトピックは、Amazon EMR on EKS で起動したジョブで Amazon S3 へのアプリケーションログの発行を開始するのに役立ちます。

S3 ログ IAM ポリシー

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

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

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

Amazon S3 にログを送信するための適切なアクセス許可を実行ロールに付与した後、「AWS CLI を使用してジョブ実行を管理する」に示すように、start-job-run リクエストの monitoringConfiguration セクションで s3MonitoringConfiguration が渡されると、ログデータは次の Amazon S3 の場所に送信されます。

  • 送信者ログ -/logUri/virtual-cluster-id/jobs/job-id/containers/pod-name/(stderr.gz/stdout.gz)

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

  • エグゼキュターログ - /logUri/virtual-cluster-id/jobs/job-id/containers/spark-application-id/executor-pod-name/(stderr.gz/stdout.gz)