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"