配置任务运行以使用 Amazon S3 日志 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置任务运行以使用 Amazon S3 日志

为了能够监控任务进度并排查故障,您必须配置任务以将日志信息发送到 Amazon S3、Amazon CloudWatch Logs 或两者。本主题可提供入门知识,帮助您将通过 Amazon EMR on EKS 启动的任务的应用程序日志发布到 Amazon S3。

S3 日志 IAM policy

任务执行角色的权限策略中必须包含以下权限,然后才能将日志数据发送到 Amazon S3。将 amzn-s3-demo-logging-bucket 替换为日志记录存储桶的名称。

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

Amazon EMR on EKS 也可以创建 Amazon S3 存储桶。如果 Amazon S3 存储桶不可用,则 IAM policy 应包含 “s3:CreateBucket” 权限。

在您授予执行角色将日志发送到 Amazon S3 的合适权限后,只要 s3MonitoringConfiguration 通过 monitoringConfiguration 请求的 start-job-run 部分,您的日志数据将发送到以下 Amazon S3 位置,如 使用 Amazon CLI 管理任务运行 所示。

  • 提交者日志 - /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)