記錄 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 日誌寫入 中的/aws-glue/jobs/error日誌群組 Amazon CloudWatch。另一方面,預設會將使用者 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 的任務。如果您在未初始化 的情況下執行純 Spark 任務glueContext,則不會顯示 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 日誌的加密,請遵循《Amazon Logs 使用者指南》中的使用 在 Amazon CloudWatch 日誌中加密日誌資料 AWS Key Management Service的指示。 Amazon CloudWatch

其他資訊

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