我在飞艇org.apache.spark.SparkException得到一个错误:作业已中止。与描述产生的原因:java.lang.OutOfMemoryError:GC开销超过限制。
我开始调查,结果发现,这个问题是不是在飞艇低效的任务,但问题是我们如何运行的火花。飞艇提供了内置的火花和使用外部火花的方式(在CONF / zeppelin-env.sh或飞艇GUI可以设置SPARK_HOME)。当我使用的是内置的火花一切工作不错,但对于外部火花我越来越GC开销超出限制的相同任务异常。
是什么这两个运转火花方式以及如何我可以修复GC开销超过限制的例外之间的区别?
所不同的是在驱动程序的可用内存。我发现了它的齐柏林口译spark.log:memorystore started with capacity ...
。当我用bult-火花是2004.6 MB
外部火花是366.3 MB
。
所以,我在飞艇GUI设置spark.driver.memory
增加可用内存的驱动程序。它解决了这个问题。