为 Amazon Glue 作业启用连续日志记录
注意
连续日志记录仅适用于 Amazon Glue 4.0 及更早版本。
您可使用 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 作业
登录 Amazon Web Services Management Console,然后打开 Amazon Glue 控制台,网址为:https://console.aws.amazon.com/glue/
。 -
在导航窗格中,选择 ETL 作业。
-
选择 Visual ETL。
-
在作业详细信息选项卡中,展开高级属性部分。
-
在持续日志记录下,选择启用 CloudWatch 中的日志。
为现有 Amazon Glue 作业启用连续日志记录
通过 https://console.aws.amazon.com/glue/
打开 Amazon Glue 控制台。 -
在导航窗格中,选择作业。
-
从作业列表选择现有作业。
-
选择操作和编辑作业。
-
在作业详细信息选项卡中,展开高级属性部分。
-
在持续日志记录下,选择启用 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/error-<
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 控制台上管理安全配置。