如何在spark local模型中解决hiveContext抛出一个java oom permGen空间错误

时间:2016-01-11 12:41:43

标签: java apache-spark out-of-memory permgen hivecontext

当我使用IDEA在spark本地模型中创建hiveContext时,spark版本为1.6.0,该程序抛出异常。例外情况如下:

 Caused by: java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

我注意到java oom permGen space,所以我认为permGen空间太小了。

所以我在google和堆栈溢出中搜索问题,它建议我增加permgen空间,然后我尝试增加空间如下

val conf = new SparkConf().setMaster("local[4]").setAppName("TF")
conf.set("spark.driver.memory","4g")
conf.set("spark.executor.memory","4g")
conf.set("spark.executor.extraJavaOptions","-XX:MaxPermSize=2048m -XX:PermSize=512m")
conf.set("spark.driver.extraJavaOptions","-XX:PermSize=512m -XX:+PrintGCDetails")
val sc = new SparkContext(conf)
val hc = new HiveContext(sc)

似乎不起作用,并且参数没有生效,错误仍然存​​在。 正如Spark官员所说,我们可以通过SparkConf设置spark java属性,所以我使用sparkConf来增加permgen空间,但它不起作用。

如何增加火花中的permgen空间并使其变得有效。还有其他人遇到类似的问题,以及如何解决它!

0 个答案:

没有答案
相关问题