

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 监控 Spark 任务
<a name="monitoring-spark-jobs"></a>

为了监控故障并排除故障，请配置您的交互式终端节点，以便通过终端节点启动的任务可以向 Amazon S3、Amazon Logs 或两者发送 CloudWatch 日志信息。以下各节介绍如何将您使用 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 位置。当 `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 存储桶。