监控 Spark 任务 - Amazon EMR

监控 Spark 任务

为了能够监控并排查故障,请配置交互式端点,以便通过该端点启动的任务可以将日志信息发送到 Amazon S3、Amazon CloudWatch Logs 或同时发送到两者。以下各节介绍如何将您使用 Amazon EMR on EKS 交互式端点启动的 Spark 任务的 Spark 应用程序日志发送到 Amazon S3。

配置 Amazon S3 日志的 IAM policy

任务执行角色的权限策略中必须包含以下权限,内核才能将日志数据发送到 Amazon S3。将 amzn-s3-demo-destination-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 也可以创建 S3 存储桶。如果 S3 存储桶不可用,则 IAM policy 应包含 s3:CreateBucket 权限。

在授予执行角色将日志发送到 S3 存储桶的权限后,日志数据将发送到以下 Amazon S3 位置。当 s3MonitoringConfigurationcreate-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 存储桶。