从Spark中选择插入会导致OOM

时间:2016-09-12 06:00:17

标签: apache-spark apache-spark-sql

Spark SQL是这样的:

INSERT INTO new
SELECT
~~~
FROM A, B
WHERE
~~~ (complex join)

A和new的模式相同,B有一些过滤模式。 B的大小很小,可以播放。

但它在我当地的测试中显示OOM错误。

Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
at org.apache.spark.sql.catalyst.expressions.UnsafeRow.copy(UnsafeRow.java:535)
at org.apache.spark.sql.catalyst.expressions.UnsafeRow.copy(UnsafeRow.java:93)

我尝试了重新分区和一些配置更改(例如spark.shuffle.memoryFraction),但它没有用。

我使用的是Spark 1.6。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

一种选择是,尝试增加执行程序内存

 --executor-memory 4096m

您也可以尝试调整" spark.memory.fraction"和" spark.memory.storageFraction"如... http://spark.apache.org/docs/1.6.2/tuning.html#memory-management-overview