为 Amazon Glue 作业启用连续日志记录
您可使用 Amazon Glue 控制台或通过 Amazon Command Line Interface (Amazon CLI) 启用连续日志记录。
在创建作业时,您可以启用带有标准筛选条件或无筛选条件的连续日志记录,或者通过 Amazon CLI 启用。选择标准筛选条件可筛选掉无用的 Apache Spark 驱动程序/执行程序和 Apache Hadoop YARN 检测信号日志消息。选择无筛选条件则提供所有所有日志消息。
您还可以指定自定义配置选项,例如 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/
。 -
在导航窗格中,选择作业。
-
选择添加作业。
-
在 Configure the job properties (配置任务属性) 中,展开 Monitoring options (监控选项) 部分。
-
选择 Continuous logging (连续日志记录),将其用于此任务。
-
在 Log filtering (日志筛选) 下面,选择 Standard filter (标准筛选条件) 或者 No filter (无筛选条件)。
为现有 Amazon Glue 作业启用连续日志记录
打开 Amazon Glue 控制台,地址:https://console.aws.amazon.com/glue/
。 -
在导航窗格中,选择作业。
-
从作业列表选择现有作业。
-
选择操作和编辑作业。
-
展开 Monitoring options (监控选项) 部分。
-
选择 Continuous logging (连续日志记录),将其用于此任务。
-
在 Log filtering (日志筛选) 下面,选择 Standard filter (标准筛选条件) 或者 No filter (无筛选条件)。
为所有新创建的 Amazon Glue 作业启用连续日志记录
打开 Amazon Glue 控制台,地址:https://console.aws.amazon.com/glue/
。 -
在导航窗格中,选择作业。
-
在右上角,选择用户首选项。
-
在标题 Monitoring options (监控选项) 下面,选择 Continuous logging (连续日志记录)。
-
在 Log filtering (日志筛选) 下面,选择 Standard filter (标准筛选条件) 或者 No filter (无筛选条件)。
这些用户首选项应用到所有新作业,除非您在创建 Amazon Glue 作业时或者通过编辑现有作业(如前所述)来明确覆盖了这些首选项。
使用 Amazon CLI
要启用连续日志记录,您需要将作业参数传入 Amazon Glue 作业。在您希望使用标准筛选条件时,通过类似于其他 Amazon Glue 作业参数的方法,传递以下特殊作业参数。有关更多信息,请参阅Amazon 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
。请注意,转换模式仅适用于驱动程序日志和执行程序日志。它不会影响 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 控制台上处理安全配置。