您可以使用 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
-
登录 AWS Management Console,然后打开 AWS Glue 控制台,网址为:https://console.aws.amazon.com/glue/
。 -
在导航窗格中,选择作业。
-
选择添加作业,或选择现有的作业。
-
在作业详细信息中,打开高级属性。
-
在 Spark UI 选项卡下,选择将 Spark UI 日志写入 Amazon S3。
-
指定用于存储任务的 Spark 事件日志的 Amazon S3 路径。请注意,如果您在任务中使用安全配置,则加密也将适用于 Spark UI 日志文件。有关更多信息,请参阅 加密 AWS Glue 写入的数据。
-
在 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'