Enabling Continuous Logging for AWS Glue Jobs - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

Enabling Continuous Logging for AWS Glue Jobs

您可使用 AWS Glue 控制台或通过 AWS Command Line Interface (AWS CLI) 启用连续日志记录。

在创建作业时,您可以启用带有标准筛选条件或无筛选条件的连续日志记录,或者通过 AWS CLI 启用。选择标准筛选条件可筛选掉无用的 Apache Spark 驱动程序/执行程序和 Apache Hadoop YARN 检测信号日志消息。选择无筛选条件则提供所有所有日志消息。

您还可以指定自定义配置选项,例如 AWS CloudWatch 日志组名称、AWS Glue 作业运行 ID 驱动程序/执行程序 ID 之前的 CloudWatch 日志流前缀,以及日志消息的日志转换模式。这些配置可帮助您在具有不同到期策略的自定义 CloudWatch 日志组中设置聚合日志,并使用自定义日志流前缀和转换模式对它们进行进一步分析。

Using the AWS 管理控制台

在创建或编辑 AWS Glue 作业时,按照以下步骤使用控制台来启用连续日志记录。

创建带有连续日志记录的新 AWS Glue 作业

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS Glue 控制台:https://console.amazonaws.cn/glue/

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

  3. 选择添加作业

  4. 配置作业属性中,选择监控选项

  5. 连续日志记录选项卡上,选择启用

  6. 选择标准筛选条件无筛选条件

为现有 AWS Glue 作业启用连续日志记录

  1. 通过以下网址打开 AWS Glue 控制台:https://console.amazonaws.cn/glue/

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

  3. 作业列表选择现有作业。

  4. 选择操作编辑作业

  5. 选择监控选项

  6. 连续日志记录选项卡上,选择启用

  7. 选择标准筛选条件无筛选条件

为所有新创建的 AWS Glue 作业启用连续日志记录

  1. 通过以下网址打开 AWS Glue 控制台:https://console.amazonaws.cn/glue/

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

  3. 在右上角,选择用户首选项

  4. 选择监控选项

  5. 连续日志记录选项卡上,选择启用

  6. 选择标准筛选条件无筛选条件

这些用户首选项应用到所有新作业,除非您在创建 AWS Glue 作业时或者通过编辑现有作业(如前所述)来明确覆盖了这些首选项。

Using the AWS CLI

要启用连续日志记录,您需要将作业参数传入 AWS Glue 作业。在您希望使用标准筛选条件时,通过类似于其他 AWS Glue 作业参数的方法,传递以下特殊作业参数。有关更多信息,请参阅 由 使用的特殊参数AWS Glue。)

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

在您不希望使用筛选条件时,使用以下命令。

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

您可以指定自定义 AWS CloudWatch 日志组名称。如果未指定,则默认日志组名称为 /aws-glue/jobs/logs-v2/

'--continuous-log-logGroup': 'custom_log_group_name'

您可以指定自定义 AWS CloudWatch 日志流前缀。如果未指定,则默认日志流前缀为作业运行 ID。

'--continuous-log-logStreamPrefix': 'custom_log_stream_prefix'

您可以指定自定义连续日志记录转换模式。如果未指定,默认转换模式为 %d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n。请注意,转换模式仅适用于驱动程序日志和Executor日志。它不会影响 Glue 进度条。

'--continuous-log-conversionPattern': 'custom_log_conversion_pattern'

Logging Application-Specific Messages Using the Custom Script Logger

您可以使用 AWS Glue 日志记录程序记录在脚本中记录任何特定于应用程序的消息,这些消息实时发送到驱动程序日志流。

以下示例显示了一个 Python 脚本。

from awsglue.context import GlueContext from pyspark.context import SparkContext sc = SparkContext() glueContext = GlueContext(sc) logger = glueContext.get_logger() logger.info("info message") logger.warn("warn message") logger.error("error message")

以下示例显示了一个 Scala 脚本。

import com.amazonaws.services.glue.log.GlueLogger object GlueApp { def main(sysArgs: Array[String]) { val logger = new GlueLogger logger.info("info message") logger.warn("warn message") logger.error("error message") } }

Enabling the Progress Bar to Show Job Progress

AWS Glue 在 JOB_RUN_ID-progress-bar 日志流下提供了实时进度栏,用于查看 AWS Glue 作业运行状态。当前它仅支持初始化的作业 glueContext。如果在没有初始化的情况下运行纯火花作业 glueContext、 AWS Glue 进度条未显示。

进度栏每 5 秒显示下列进度更新。

Stage Number (Stage Name): > (numCompletedTasks + numActiveTasks) / totalNumOfTasksInThisStage]

Security Configuration with Continuous Logging

如果CloudWatch日志启用了安全配置, AWS Glue 将创建一个名为ContinuousLogs(连续日志)的日志组:

<Log-Group-Name>-<Security-Configuration-Name>

默认和自定义日志组如下:

  • The default continuous log group will be /aws-glue/jobs/logs-v2-<Security-Configuration-Name>

  • The custom continuous log group will be <custom-log-group-name>-<Security-Configuration-Name>

您还需要将 logs:AssociateKmsKey 如果您使用CloudWatch日志启用安全配置,请参考IAM角色权限。如果不包括,将禁用连续记录。

有关创建安全配置的更多信息,请参阅 在 AWS Glue 控制台上处理安全配置.