私は8つのCPUコアと30GBのメモリを持つそれぞれ5つのモードがあります。私は5GBのdataset1と65GBのデータセット2を持っているので、それらを結合してs3ファイルに保存する必要がありますシステムと私は、次のパラメータを設定します。パフォーマンス調整、outOfMemoryErrorGcとGC制限のパラメータを超えました
--num-executors 4 --spark.driver.memory 8g --executor-cores 5 --executor-memory 27g --conf spark.yarn.executor.memoryOverhead=824m
をしかし、私はどこでも検索し、異なるパラメータを試してみましたが、まだ私はメモリエラーのうち、取得しています。 Gcオーバーヘッド制限を超えました。
はまた、Javaコードでこれを使用:stackoverflowの中conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer");
conf.set("spark.kryo.registrator", AvgRegistrator.class.getName());
conf.set("spark.driver.maxResultSize", "5g");
conf.set("spark.broadcast.compress", "true");
conf.set("spark.shuffle.compress", "true");
ありません任意のソリューションは私のために働いています。だから誰も私にこの問題を取り除くためのより良い解決策を与えることができます。
Spark java.lang.OutOfMemoryError: Java heap space
と私はこれを取得していますいくつかの時間:私はPARALELLISMのレベルを高めるためにしようと
java.lang.OutOfMemoryError: GC overhead limit exceeded
すでに別のパーティションで試してみました。最初のデータセットに合計8GBのパーティションを200個、別のデータセットに合計65GBのデータを99個のパーティションに分割しています –
これは十分な数のサウンドです。 –
また、 'spark.yarn.executor.memoryOverhead'パラメータをデフォルトのものよりも小さい値に設定しています(executorMemory * 0.10と同じです)。 –