

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

# 轮换日志
<a name="rotating-logs"></a>

Amazon EMR Serverless 可以轮换 Spark 应用程序日志和事件日志。日志轮换有助于解决长时间运行的作业生成大型日志文件，而占用磁盘空间的问题。轮换日志有助于节省磁盘存储空间，减少因磁盘空间不足而导致的作业失败次数。

默认情况下，日志轮换处于启用状态，且仅适用于 Spark 作业。

**Spark 事件日志**

**注意**  
Spark 事件日志轮换适用于所有 Amazon EMR 发行版标签。

EMR Serverless 不是生成单个事件日志文件，而是定期轮换事件日志并删除旧的事件日志文件。轮换日志不会影响上传到 S3 存储桶的日志。

**Spark 应用程序日志**

**注意**  
Spark 应用程序日志轮换适用于所有 Amazon EMR 发行版标签。

EMR Serverless 还会轮换驱动程序和执行程序的 Spark 应用程序日志，例如 `stdout` 和 `stderr`。您可以使用 Spark History Server 和 Live UI 链接在 Studio 中选择日志链接来访问最新的日志文件。日志文件是最新日志的截断版本。要查看旧的轮换日志，请在存储日志时指定 Amazon S3 位置。有关更多信息，请参阅[使用 Amazon S3 存储桶的 EMR Serverless 日志记录](https://docs.amazonaws.cn/emr/latest/EMR-Serverless-UserGuide/logging.html#jobs-log-storage-s3-buckets)。

您可以在以下位置找到最新的日志文件。EMR Serverless 每 15 秒刷新一次文件。这些文件的大小从 0MB 到 128MB 不等。

```
<example-S3-logUri>/applications/<application-id>/jobs/<job-id>/SPARK_DRIVER/stderr.gz
```

以下位置包含旧的轮换文件。每个文件都是 128MB。

```
<example-S3-logUri>/applications/<application-id>/jobs/<job-id>/SPARK_DRIVER/archived/stderr_<index>.gz 
```

同样的行为也适用于 Spark 执行程序。此更改仅适用于 S3 日志记录。日志轮换不会对上传到 Amazon 的日志流进行任何更改 CloudWatch。

EMR Serverless 7.1.0 及更高版本支持流处理和批处理作业重试。如果您在作业中启用了重试，EMR Serverless 会在此类作业的日志路径中添加前缀，以便更好地跟踪和区分日志。此路径包含所有轮换日志。

```
'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/'.
```