spark wordcount程序,在本地运行时没问题的,但是放到集群上运行的时候就出错了,出现的问题如下:
16/03/28 19:04:23 ERROR spark.SparkContext: Error initializing SparkContext.
java.lang.IllegalArgumentException: System memory 101384192 must be at least 4.718592E8. Please use a larger heap size.at org.apache.spark.memory.UnifiedMemoryManager$.getMaxMemory(UnifiedMemoryManager.scala:193)
开始以为是虚拟机内存不足,然后开始1g,1g的往上加,但是任然没有什么卵用。百度一下,发现也只有两个人碰到这个问题:说是JVM申请的memory不够导致无法启动SparkContext,然后我按照文章中说的方法,在程序中设定参数来实现了:
SparkConf conf = new SparkConf()
.setAppName("WordCountCluster")
.set("spark.testing.memory", "2147480000");
接着运行就没问题了。
解决方法参考:http://blog.csdn.net/qingyang0320/article/details/50787550
感悟:看来不认真的看看源码是不行的了,因为只要把报的错误在spark项目中找一找就知道是那个方法抛出异常了,所以说,出问题了,首先从源码中找找,定位到哪个方法,然后确定是什么错误,这样才不用到处求人