Spark YARNを含むジョブのspark.yarn.executor.memoryOverhead
の値は、Appに割り当てられるべきですか、それとも最大値だけですか?
spark.yarn.executor.memoryOverhead
最大値です。目標は、RDDおよびDataFrameで使用される、実際のエグゼキューターメモリの割合としてOVERHEADを計算することです。
--executor-memory/spark.executor.memory
エグゼキュータヒープサイズを制御しますが、JVMは、たとえばインターンされた文字列やダイレクトバイトバッファなど、ヒープ以外のメモリも使用できます。
spark.yarn.executor.memoryOverhead
プロパティの値がエグゼキューターメモリに追加され、各エグゼキューターのYARNへの完全なメモリリクエストが決定されます。デフォルトはmax(executorMemory * 0.10、最小384)です。
エグゼキュータは、spark.executor.memory
のプロパティに基づいたメモリ割り当てと、spark.yarn.executor.memoryOverhead
で定義されるオーバーヘッドを使用します。
spark yarnを使用したexecutorメモリレイアウトの詳細な説明は here