apache-sparkトラブルシュート

java.lang.OutOfMemoryError: Java heap space

javaのヒープメモリが足りない。こういうトラブルの場合大抵はメモリの設定が悪い。

ExecuorMemoryとDriverMemoryを拡大させる

conf/spark-env.shに以下を追加し、ドライバー(親)とエクゼキューター(複数のマシンに分散して実行するプロセス?)の確保できる最大メモリを増やす

SPARK_EXECUTOR_MEMORY=5g
SPARK_DRIVER_MEMORY=20g

また、collectなど、最終的にmapしたRDDを収集するときの最大サイズにも注意が必要。そのような最大サイズはconfにspark.driver.maxResultSizeを設定する。

scalaを使用している場合、オプションはSparkContextから設定できる

val conf = new SparkConf()
conf.set("spark.driver.maxResultSize","10g")

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください