配置任务运行以使用 Amazon S3 日志
为了能够监控任务进度并排查故障,您必须配置任务以将日志信息发送到 Amazon S3、Amazon CloudWatch Logs 或两者。本主题可提供入门知识,帮助您将通过 Amazon EMR on EKS 启动的任务的应用程序日志发布到 Amazon S3。
S3 日志 IAM policy
任务执行角色的权限策略中必须包含以下权限,然后才能将日志数据发送到 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 policy 应包含 “s3:CreateBucket”
权限。
在您授予执行角色将日志发送到 Amazon S3 的合适权限后,只要 s3MonitoringConfiguration
通过 monitoringConfiguration
请求的 start-job-run
部分,您的日志数据将发送到以下 Amazon S3 位置,如 使用 AWS 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)