如何减少 AWS Glue 任务生成的日志数量?

1 分钟阅读
0

我的 AWS Glue 任务在 Amazon CloudWatch 中生成了太多日志。我想减少生成的日志数量。

解决方法

使用 AWS Glue-Spark ETL 任务,您无法控制运行 AWS Glue 作业的实例生成的日志的详细程度。这些日志非常详细,因此可以用来监控内部故障并帮助诊断任务故障。但是,您可以按照此处介绍的步骤来定义 Spark 日志记录级别。

选择连续日志记录的标准筛选条件设置

如果已为任务启用连续日志记录,请为日志筛选条件选择标准筛选条件选项。此筛选条件可以帮助您删除无用的 Apache Spark 驱动程序/执行程序和 Apache Hadoop YARN 心跳日志消息。要更改 AWS Glue 任务的日志筛选条件设置,请执行以下操作:

  1. 打开 AWS Glue 控制台
  2. 在导航窗格中,选择任务
  3. 选择要更新的任务。
  4. 选择操作,然后选择编辑任务
  5. 展开监控选项部分。
  6. 选择连续日志记录
  7. 日志筛选条件下,选择标准筛选条件
  8. 选择保存

要从 AWS Command Line Interface (AWS CLI) 更改此设置,请使用以下命令:

'--enable-continuous-cloudwatch-log': 'true'
'--enable-continuous-log-filter': 'true'

注意:如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI

有关更多信息,请参阅启用 AWS Glue 任务的连续日志记录

**重要提示:**即使采用标准筛选条件设置,Spark 任务的应用程序主日志仍会推送到 /aws-glue/jobs/output/aws-glue/jobs/error log 组。

使用 Spark 上下文方法 setLogLevel 设置日志记录级别

可以使用 pyspark.context.SparkContextsetLogLevel 方法设置任务的日志记录级别。有效的日志记录级别包括全部、调试、错误、致命、信息、关闭、跟踪和警告。有关更多信息,请参阅适用于 setLogLevel 的 Spark 文档。

使用以下代码导入 Spark 上下文方法并设置任务的日志记录级别:

from pyspark.context import SparkContext
sc = SparkContext()
sc.setLogLevel("new-log-level")

**注意:**请务必将 new-log-level 替换为要为任务设置的日志级别。

有关更多信息,请参阅适用于配置日志记录的 Spark 文档。

使用自定义 log4j.properties 文件定义日志记录级别

Spark 使用 log4j 配置进行日志记录。您可以在 log4j.properties 文件中包含日志首选项,将该文件上载到 Amazon Simple Storage Service (Amazon S3),然后在 AWS Glue 任务中使用该文件。

要在任务中引用 Amazon S3 文件,请执行以下操作:

  1. 打开 AWS Glue 控制台
  2. 在导航窗格中,选择任务
  3. 选择要引用文件的任务。
  4. 选择 Actions(操作),然后选择 Edit job(编辑任务)。
  5. 展开安全配置、脚本库和任务参数 (可选) 部分。
  6. 对于引用的文件路径,粘贴用于存储 log4j.properties 文件的完整 S3 路径。

有关更多信息,请参阅提供自己的自定义脚本


相关信息

使用 Amazon CloudWatch 进行监控

AWS 官方
AWS 官方已更新 2 年前