本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
监控 Spark 任务
为了监控故障并排除故障,请配置您的交互式终端节点,以便通过终端节点启动的任务可以向 Amazon S3、Amazon Logs 或两者发送 CloudWatch 日志信息。以下各节介绍如何将您使用 Amazon EMR on EKS 交互式端点启动的 Spark 任务的 Spark 应用程序日志发送到 Amazon S3。
配置 Amazon S3 日志的 IAM policy
任务执行角色的权限策略中必须包含以下权限,内核才能将日志数据发送到 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
/*", ] } ] }
注意
Amazon EMR on EKS 也可以创建 S3 存储桶。如果 S3 存储桶不可用,则 IAM policy 应包含 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)
注意
Amazon EMR on EKS 不会将端点日志上传到您的 S3 存储桶。