Spark Streamingアプリケーションが、OutOfmemoryExceptionで失敗し続ける:Javaヒープスペース。DAGスケジューライベントループoutOfMemoryerror:Sparkストリーミングアプリケーションを使用したJavaヒープスペース
私は自分のスパーク送信ジョブに以下の設定を使用しています。
spark-submit \
--class ... \
--master ...\
--deploy-mode cluster \
--executor-memory 1G \
--total-executor-cores 3 \
--driver-memory 2G
とspark.yarn.driver.memoryOverheadが1Gに設定されています。
ヒープダンプを分析した後、 "DAG scheduler Event Loop"の過剰使用に気付きました。さらに詳しく調べると、CHAR []とbyte []クラスが使用されています。
旧世代GCは、すべて2GBのメモリを占有し、成長を続けています。
これはバグです、あるいは、同じことをさらに分析するために、より多くの情報が必要です。
お手数をおかけします。
ここに解決される?あまりにも多くのスレッド
を作成しているスパーク2.0.0でForkJoinPoolの利用にはバグがあるようですかスパークエグゼキュータのための1Gは、非常に少ないメモリ量です。 JVMランタイムに必要なオーバーヘッドがあることを忘れないでください。とにかく、完全な1Gを得ることはできません。あなたはエグゼクティブの記憶を強化する必要があります。 –