

# 为 Amazon Glue 作业启用 Apache Spark Web UI
<a name="monitor-spark-ui-jobs"></a>

您可以使用 Apache Spark Web UI 监控和调试在 Amazon Glue 作业系统上运行的 Amazon Glue ETL 作业。您可以使用 Amazon Glue 控制台或 Amazon Command Line Interface (Amazon CLI) 配置 Spark UI。

Amazon Glue 每 30 秒将 Spark 事件日志备份到您指定的 Amazon S3 路径一次。

**Topics**
+ [配置 Spark UI（控制台）](#monitor-spark-ui-jobs-console)
+ [配置 Spark UI (Amazon CLI)](#monitor-spark-ui-jobs-cli)
+ [为使用笔记本的会话配置 Spark 用户界面](#monitor-spark-ui-sessions)
+ [启用滚动日志](#monitor-spark-ui-rolling-logs)

## 配置 Spark UI（控制台）
<a name="monitor-spark-ui-jobs-console"></a>

按照以下步骤使用 Amazon Web Services 管理控制台 配置 Spark UI。创建 Amazon Glue 任务后，将默认启用 Spark UI。

**在创建或编辑任务时启用 Spark UI**

1. 登录 Amazon Web Services 管理控制台，然后打开 Amazon Glue 控制台，网址为：[https://console.aws.amazon.com/glue/](https://console.amazonaws.cn/glue/)。

1. 在导航窗格中，选择**作业**。

1. 选择**添加作业**，或选择现有的作业。

1. 在**作业详细信息**中，打开**高级属性**。

1. 在 **Spark UI** 选项卡下，选择**将 Spark UI 日志写入 Amazon S3**。

1. 指定用于存储任务的 Spark 事件日志的 Amazon S3 路径。请注意，如果您在任务中使用安全配置，则加密也将适用于 Spark UI 日志文件。有关更多信息，请参阅 [加密 Amazon Glue 写入的数据](encryption-security-configuration.md)。

1. 在 **Spark UI 日志记录和监控配置**下：
   + 如果要生成可在 Amazon Glue 控制台中查看的日志，请选择**标准**。
   + 如果要生成可在 Spark 历史记录服务器上查看的日志，请选择**传统**。
   + 您还可以选择同时生成这两种日志。

## 配置 Spark UI (Amazon CLI)
<a name="monitor-spark-ui-jobs-cli"></a>

要生成可在 Amazon Glue 控制台中使用 Spark UI 查看的日志，请使用 Amazon CLI 将以下任务参数传递给 Amazon Glue 任务。有关更多信息，请参阅 [在 Amazon Glue 作业中使用作业参数](aws-glue-programming-etl-glue-arguments.md)。

```
'--enable-spark-ui': 'true',
'--spark-event-logs-path': 's3://s3-event-log-path'
```

要将日志分发到其遗留位置，请将 `--enable-spark-ui-legacy-path` 参数设置为 `"true"`。如果不需要同时生成两种格式的日志，请移除 `--enable-spark-ui` 参数。

## 为使用笔记本的会话配置 Spark 用户界面
<a name="monitor-spark-ui-sessions"></a>

**警告**  
Amazon Glue 交互式会话目前不支持在控制台中使用 Spark UI。配置 Spark 历史记录服务器。

 如果您使用 Amazon Glue 笔记本电脑，请在开始会话之前设置 SparkUI 配置。为此，请使用 `%%configure` 单元格魔术命令：

```
%%configure { “--enable-spark-ui”: “true”, “--spark-event-logs-path”: “s3://path” }
```

## 启用滚动日志
<a name="monitor-spark-ui-rolling-logs"></a>

 为 Amazon Glue 任务启用 SparkUI 和滚动日志事件文件有以下优势：
+  滚动日志事件文件 – 启用滚动日志事件文件后，Amazon Glue 会为任务执行的每个步骤生成单独的日志文件，以便用户更轻松地识别和排查特定阶段或转换的问题。
+  更好的日志管理 – 滚动日志事件文件有助于更有效地管理日志文件。与存储可能较大的单个日志文件不同，启用滚动日志事件文件后，日志会根据任务执行阶段拆分为更小、更易于管理的多个文件。这可以简化日志存档、分析和故障排除。
+  提高容错能力 – 如果 Amazon Glue 任务失败或中断，滚动日志事件文件可以提供有关最后成功阶段的宝贵信息，从而帮助您更轻松地从该阶段恢复任务，而不是从头开始。
+  成本优化 – 通过启用滚动日志事件文件，您可以节省与日志文件相关的存储成本。与存储可能较大的单一日志文件不同，您能够存储更小、更易于管理的多个日志文件，这可能更具成本效益，特别是对于长时间运行或复杂的任务而言。

 在新环境中，用户可以通过以下方式明确启用滚动日志：

```
'—conf': 'spark.eventLog.rolling.enabled=true'
```

或

```
'—conf': 'spark.eventLog.rolling.enabled=true —conf 
spark.eventLog.rolling.maxFileSize=128m'
```

 激活滚动日志时，`spark.eventLog.rolling.maxFileSize` 会指定事件日志文件在滚动之前的最大大小。如果未指定此可选参数，则默认值为 128 MB。最小为 10 MB。

 所有生成的滚动日志事件文件的最大总和为 2 GB。对于不支持滚动日志的 Amazon Glue 任务，SparkUI 支持的日志事件文件最大大小为 0.5 GB。

您可以通过传递额外配置来关闭流式处理任务的滚动日志功能。请注意，非常大的日志文件的维护成本可能很高。

要关闭滚动日志，请提供以下配置：

```
'--spark-ui-event-logs-path': 'true',
'--conf': 'spark.eventLog.rolling.enabled=false'
```