为 Amazon Glue 作业启用连续日志记录 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为 Amazon Glue 作业启用连续日志记录

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

您可以在创建新作业或编辑现有作业时启用连续日志记录,也可通过 Amazon CLI 启用此功能。

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

使用 Amazon Web Services Management Console

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

创建带有连续日志记录的新 Amazon Glue 作业
  1. 登录 Amazon Web Services Management Console,然后打开 Amazon Glue 控制台,网址为:https://console.aws.amazon.com/glue/

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

  3. 选择 Visual ETL

  4. 作业详细信息选项卡中,展开高级属性部分。

  5. 持续日志记录下,选择启用 CloudWatch 中的日志

为现有 Amazon Glue 作业启用连续日志记录
  1. 通过 https://console.aws.amazon.com/glue/ 打开 Amazon Glue 控制台。

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

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

  4. 选择操作编辑作业

  5. 作业详细信息选项卡中,展开高级属性部分。

  6. 持续日志记录下,选择启用 CloudWatch 中的日志

使用 Amazon CLI

要启用连续日志记录,您需要将作业参数传入 Amazon Glue 作业。通过类似于其他 Amazon Glue 作业参数的方法,传递以下特殊作业参数。有关更多信息,请参阅 Amazon Glue 作业参数

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

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

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

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

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

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

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

使用自定义脚本日志记录程序记录特定于应用程序的消息

您可以使用 Amazon 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") } }

启用进度栏以显示作业进度

Amazon Glue 在 JOB_RUN_ID-progress-bar 日志流下提供了实时进度栏,用于查看 Amazon Glue 作业运行状态。目前,它仅支持初始化 glueContext 的作业。如果您运行纯 Spark 作业而没有初始化 glueContext,则不显示 Amazon Glue 进度栏。

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

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

采用连续日志记录的安全配置

如果为 CloudWatch 日志启用了安全配置,Amazon Glue 将为连续日志创建一个名称如下的日志组:

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

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

  • 默认连续日志组将为 /aws-glue/jobs/logs-v2-<Security-Configuration-Name>

  • 自定义连续日志组将为 <custom-log-group-name>-<Security-Configuration-Name>

您需要将 logs:AssociateKmsKey 添加到您的 IAM 角色权限(如果您使用 CloudWatch Logs 启用了安全配置)。如果不包括该权限,连续日志记录将禁用。此外,要为 CloudWatch Logs 配置加密,请遵循《Amazon CloudWatch Logs 用户指南》中的使用 Amazon Key Management Service 加密 CloudWatch Logs 中日志数据处的说明。

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