記錄 AWS Glue 任務 - AWS Glue

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

記錄 AWS Glue 任務

在 AWS Glue 5.0 中,所有任務都具有即時記錄功能。此外,可以指定自訂組態選項來量身打造記錄行為。這些選項包括設定 Amazon CloudWatch 日誌群組名稱、Amazon CloudWatch 日誌串流字首 (在 AWS Glue 任務執行 ID 和驅動器/執行器 ID 之前),以及日誌訊息的日誌轉換模式。這些組態可讓您在具有不同過期政策的自訂 Amazon CloudWatch 日誌群組中彙總日誌。此外,可以使用自訂日誌串流字首和轉換模式,更有效地分析日誌。此自訂層級可讓您根據特定需求來最佳化日誌管理和分析。

AWS Glue 5.0 中的記錄行為

系統日誌、Spark 常駐程式日誌和使用者 AWS Glue Logger 日誌預設會寫入到 Amazon CloudWatch 中的 /aws-glue/jobs/error 日誌群組。另一方面,使用者 stdout (標準輸出) 和 stderr (標準錯誤) 日誌預設會寫入到 /aws-glue/jobs/output 日誌群組。

自訂記錄

可以使用下列任務引數來自訂預設日誌群組和日誌串流字首:

  • --custom-logGroup-prefix:可讓您指定 /aws-glue/jobs/error/aws-glue/jobs/output 日誌群組的自訂字首。如果您提供自訂字首,日誌群組名稱的格式如下:

    • /aws-glue/jobs/error 將為 <customer prefix>/error

    • /aws-glue/jobs/output 將為 <customer prefix>/output

  • --custom-logStream-prefix:可讓您為日誌群組中的日誌串流名稱指定自訂字首。如果您提供自訂字首,日誌串流名稱的格式如下:

    • jobrunid-driver 將為 <customer log stream>-driver

    • jobrunid-executorNum 將為 <customer log stream>-executorNum

自訂字首的驗證規則和限制:

  • 整個日誌串流名稱的長度必須介於 1 到 512 個字元之間。

  • 自訂字首本身限制為 400 個字元。

  • 自訂字首必須符合規則表達式模式 `[^:*]*` (允許的特殊字元為 '_'、'-' 和 '/')。

使用自訂指令碼記錄器記錄應用程式特定訊息

您可以使用 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 的任務。如果您執行無需初始化 glueContext 的純 Spark 任務,AWS Glue 進度列將不會出現。

進度列每 5 秒顯示一次以下的最新進度。

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

安全組態與 Amazon CloudWatch 記錄

為 Amazon CloudWatch 日誌啟用安全組態時,AWS Glue 會建立包含安全組態名稱之特定命名模式的日誌群組。

使用安全組態命名日誌群組

預設和自訂日誌群組將如下所示:

  • 預設錯誤日誌群組:/aws-glue/jobs/Security-Configuration-Name-role/glue-job-role/error

  • 預設輸出日誌群組:/aws-glue/jobs/Security-Configuration-Name-role/glue-job-role/output

  • 自訂錯誤日誌群組 (AWS Glue 5.0):custom-log-group-prefix/Security-Configuration-Name-role/glue-job-role/error

  • 自訂輸出日誌群組 (AWS Glue 5.0):custom-log-group-prefix/Security-Configuration-Name-role/glue-job-role/output

所需的 IAM 許可

如果使用 Amazon CloudWatch Logs 啟用安全組態,則需要將 logs:AssociateKmsKey 許可新增至您的 IAM 角色許可。如果未包含該許可,則會停用連續記錄。

此外,若要設定 Amazon CloudWatch Logs 的加密,請依照《Amazon Amazon CloudWatch Logs 使用者指南》中的使用 AWS Key Management Service 加密 Amazon CloudWatch Logs 中的日誌資料指示進行操作。

其他資訊

如需有關建立安全組態的詳細資訊,請參閱在 AWS Glue 主控台上管理安全組態