使用 Spark 事件日誌輪換 - Amazon EMR

使用 Spark 事件日誌輪換

使用 Amazon EMR 6.3.0 及更高版本,可以為 Amazon EMR on EKS 開啟 Spark 事件日誌輪換功能。此功能不會產生單一事件日誌檔案,而是會根據您設定的時間間隔來輪換檔案,並移除最舊的事件日誌檔案。

輪換 Spark 事件日誌可協助您避免長時間執行或串流作業所產生的大型 Spark 事件日誌檔案可能發生的問題。例如,使用透過 persistentAppUI 參數啟用的事件日誌來開始長時間執行的 Spark 作業。Spark 驅動程式會產生事件日誌檔案。如果作業執行數小時或數天,且 Kubernetes 節點上的磁碟空間有限,則事件日誌檔案可能會耗用所有可用的磁碟空間。開啟 Spark 事件日誌輪換功能可解決此問題,方法是將日誌檔案分割為多個檔案並移除最舊的檔案。

注意

此功能僅適用於 Amazon EMR on EKS。在 Amazon EC2 執行的 Amazon EMR 不支援 Spark 事件日誌輪換。

若要開啟 Spark 事件日誌輪換功能,請設定下列 Spark 參數:

  • spark.eventLog.rotation.enabled‐開啟日誌輪換。依預設,它在 Spark 組態檔案中被停用。設定為 true 可開啟此功能。

  • spark.eventLog.rotation.interval‐指定日誌輪換的時間間隔。最小值為 60 秒。預設值為 300 秒。

  • spark.eventLog.rotation.minFileSize‐指定最小檔案大小以輪換日誌檔案。最小且預設值為 1 MB。

  • spark.eventLog.rotation.maxFilesToRetain‐指定在清理期間要保留多少個已輪換的日誌檔案。有效範圍為 1 到 10。預設值為 2。

可以在 StartJobRun API 的 sparkSubmitParameters 區段中指定這些參數,如下列範例所示。

"sparkSubmitParameters": "--class org.apache.spark.examples.SparkPi --conf spark.eventLog.rotation.enabled=true --conf spark.eventLog.rotation.interval=300 --conf spark.eventLog.rotation.minFileSize=1m --conf spark.eventLog.rotation.maxFilesToRetain=2"