为 AWS Glue 作业启用 Apache Spark Web UI - AWS Glue

为 AWS Glue 作业启用 Apache Spark Web UI

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

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

配置 Spark UI(控制台)

按照以下步骤使用 AWS Management Console 配置 Spark UI。创建 AWS Glue 任务后,将默认启用 Spark UI。

在创建或编辑任务时启用 Spark UI
  1. 登录 AWS Management Console,然后打开 AWS Glue 控制台,网址为:https://console.aws.amazon.com/glue/

  2. 在导航窗格中,选择作业

  3. 选择添加作业,或选择现有的作业。

  4. 作业详细信息中,打开高级属性

  5. Spark UI 选项卡下,选择将 Spark UI 日志写入 Amazon S3

  6. 指定用于存储任务的 Spark 事件日志的 Amazon S3 路径。请注意,如果您在任务中使用安全配置,则加密也将适用于 Spark UI 日志文件。有关更多信息,请参阅 加密 AWS Glue 写入的数据

  7. Spark UI 日志记录和监控配置下:

    • 如果要生成可在 AWS Glue 控制台中查看的日志,请选择标准

    • 如果要生成可在 Spark 历史记录服务器上查看的日志,请选择传统

    • 您还可以选择同时生成这两种日志。

配置 Spark UI (AWS CLI)

要生成可在 AWS Glue 控制台中使用 Spark UI 查看的日志,请使用 AWS CLI 将以下任务参数传递给 AWS Glue 任务。有关更多信息,请参阅 在 AWS Glue 作业中使用作业参数

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

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

为使用笔记本的会话配置 Spark 用户界面

警告

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

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

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

启用滚动日志

为 AWS Glue 任务启用 SparkUI 和滚动日志事件文件有以下优势:

  • 滚动日志事件文件 – 启用滚动日志事件文件后,AWS Glue 会为任务执行的每个步骤生成单独的日志文件,以便用户更轻松地识别和排查特定阶段或转换的问题。

  • 更好的日志管理 – 滚动日志事件文件有助于更有效地管理日志文件。与存储可能较大的单个日志文件不同,启用滚动日志事件文件后,日志会根据任务执行阶段拆分为更小、更易于管理的多个文件。这可以简化日志存档、分析和故障排除。

  • 提高容错能力 – 如果 AWS 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。对于不支持滚动日志的 AWS Glue 任务,SparkUI 支持的日志事件文件最大大小为 0.5 GB。

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

要关闭滚动日志,请提供以下配置:

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