AWS Glue 作業在 Amazon CloudWatch 中產生了太多的記錄。我想減少產生的記錄數量。
解決方法
執行 AWS Glue-Spark ETL 作業時,您無法控制執行 AWS Glue 作業的執行個體產生的日誌詳細度。詳細的日誌可用於監控內部失敗,並協助診斷作業失敗。但是,您可以按照此處介紹的步驟定義 Spark 日誌記錄層級。
選擇連續日誌記錄的標準篩選器設定
如果您為作業開啟連續日誌記錄功能,請為日誌篩選選項選擇標準。此篩選器可協助您删除没有用的 Apache Spark driver/executor 和 Apache Hadoop YARN 信跳日誌訊息。若要變更 AWS Glue 作業的日誌篩選器設定,請執行以下操作:
- 開啟 AWS Glue 主控台。
- 在瀏覽窗格中,選擇作業。
- 選取您要更新的作業。
- 選擇動作,然後選擇編輯作業。
- 展開監控選項部分。
- 選取連續日誌記錄。
- 在日誌篩選下,選取標準篩選器。
- 選擇 儲存。
若要從 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.SparkContext 的 setLogLevel 方法為您的作業設定日誌記錄層級。有效的日誌記錄層級包括 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 檔案,請執行下列動作:
- 開啟 AWS Glue 主控台。
- 在瀏覽窗格中,選擇作業。
- 選取您要在其中參考檔案的作業。
- 選擇動作,然後選擇編輯作業。
- 展開安全組態、指令碼程式庫和作業參數 (選擇性) 部分。
- 在參考檔案路徑中,貼上儲存 log4j.properties 檔案的完整 S3 路徑。
如需詳細資訊,請參閱提供您自己的自訂指令碼。
相關資訊
使用 Amazon CloudWatch 監控