在Eclipse里开发spark项目,尝试直接在spark里运行程序的时候,遇到下面这个报错:
ERROR SparkContext: Error initializing SparkContext.
java.lang.IllegalArgumentException: System memory 468189184 must be at least 4.718592E8. Please use a larger heap size.
很明显,这是JVM申请的memory不够导致无法启动SparkContext。
设置方式:
-
自己的代码处,可以在conf之后加上:
conf.set(“spark.testing.memory”, “2147480000”)//后面的值大于512m即可
或者设置应用程序的 VM options
idea的设置路径在:Run -Edit Configurations-Application选择对应的程序,设置VM options,如下:
-Xms512m -
可以在Eclipse的Run Configuration处,有一栏是Arguments,
下面有VMarguments,在下面添加下面一行(值也是只要大于512m即可)
-Dspark.testing.memory=1073741824
其他的参数,也可以动态地在这里设置,比如-Dspark.master=spark://hostname:7077
Scala2.11后不支持-make:transitive参数,打包出现scalac Error: bad option -make:transitive错误的可以选择将scala版本降至2.10或者将pom.xml里的-make:transitive这个配置删除