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

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

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

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

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

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

使用 AWS 管理控制台

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

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

  1. 登录 AWS 管理理事务台然后打开 AWS Glue 控制台,地址为:https://console.aws.amazon.com/glue/

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

  3. 选择添加作业

  4. In配置作业属性,展开监控选项部分.

  5. Select连续日志记录将其用于此作业。

  6. Unter日志筛选中,选择标准筛选器或者无筛选器

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

  1. 打开 AWS Glue 控制台,请访问https://console.aws.amazon.com/glue/

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

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

  4. 选择操作编辑作业

  5. 展开监控选项部分.

  6. Select连续日志记录将其用于此作业。

  7. Unter日志筛选中,选择标准筛选器或者无筛选器

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

  1. 打开 AWS Glue 控制台,请访问https://console.aws.amazon.com/glue/

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

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

  4. 在标题下监控选项中,选择连续日志记录

  5. Unter日志筛选中,选择标准筛选器或者无筛选器

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

使用 AWS CLI

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

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

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

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

您可以指定自定义 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。请注意,转换模式仅适用于驱动程序日志和执行程序日志。它不会影响 AWS Glue 进度栏。

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

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

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

启用进度栏以显示日志进度

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

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

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

带连续日志记录的安全配置

如果为 CloudWatch 日志启用了安全配置,AWS 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 启用了安全配置)。如果不包括此功能,则将禁用连续日志记录。

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