如何減少 AWS Glue 作業產生的記錄數量?

1 分的閱讀內容
0

AWS Glue 作業在 Amazon CloudWatch 中產生了太多的記錄。我想減少產生的記錄數量。

解決方法

執行 AWS Glue-Spark ETL 作業時,您無法控制執行 AWS Glue 作業的執行個體產生的日誌詳細度。詳細的日誌可用於監控內部失敗,並協助診斷作業失敗。但是,您可以按照此處介紹的步驟定義 Spark 日誌記錄層級。

選擇連續日誌記錄的標準篩選器設定

如果您為作業開啟連續日誌記錄功能,請為日誌篩選選項選擇標準。此篩選器可協助您删除没有用的 Apache Spark driver/executor 和 Apache Hadoop YARN 信跳日誌訊息。若要變更 AWS Glue 作業的日誌篩選器設定,請執行以下操作:

  1. 開啟 AWS Glue 主控台
  2. 在瀏覽窗格中,選擇作業
  3. 選取您要更新的作業。
  4. 選擇動作,然後選擇編輯作業
  5. 展開監控選項部分。
  6. 選取連續日誌記錄
  7. 日誌篩選下,選取標準篩選器
  8. 選擇 儲存

若要從 AWS Command Line Interface (AWS CLI) 變更此設定,請使用以下命令:

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

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確定您使用的是最新版本的 AWS CLI

如需詳細資訊,請參閱啟用 AWS Glue 作業的連續日誌記錄

**重要:**即使使用標準篩選器設定,Spark 作業的應用程式主要日誌仍會推送至 /aws-glue/jobs/output/aws-glue/jobs/error log 群組。

使用 Spark 內容方法 setLogLevel 設定日誌記錄層級

使用 pyspark.context.SparkContextsetLogLevel 方法為您的作業設定日誌記錄層級。有效的日誌記錄層級包括 ALL、DEBUG、ERROR、FATAL、INFO、OFF、TRACE 和 WARN。如需詳細資訊,請參閱 setLogLevel 的 Spark 文件。

使用下列程式碼匯入 Spark 內容方法,並設定作業的記錄層級:

from pyspark.context import SparkContext
sc = SparkContext()
sc.setLogLevel("new-log-level")

**注意:**請務必將 new-log-level 替換為您要為作業設定的記錄層級。

如需詳細資訊,請參閱設定日誌記錄的 Spark 文件。

使用自訂 log4j.properties 檔案定義記錄層級

Spark 使用 log4j 組態進行日誌記錄。您可以在 log4j.properties 檔案中包含日誌記錄喜好設定、將檔案上傳到 Amazon Simple Storage Service (Amazon S3),然後在 AWS Glue 作業中使用該檔案。

若要參考作業中的 Amazon S3 檔案,請執行下列動作:

  1. 開啟 AWS Glue 主控台
  2. 在瀏覽窗格中,選擇作業
  3. 選取您要在其中參考檔案的作業。
  4. 選擇動作,然後選擇編輯作業
  5. 展開安全組態、指令碼程式庫和作業參數 (選擇性) 部分。
  6. 參考檔案路徑中,貼上儲存 log4j.properties 檔案的完整 S3 路徑。

如需詳細資訊,請參閱提供您自己的自訂指令碼


相關資訊

使用 Amazon CloudWatch 監控

AWS 官方
AWS 官方已更新 2 年前