【Spark】java.lang.IllegalArgumentException: System memory 259522560 must be at least 471859200.
原创
©著作权归作者所有:来自51CTO博客作者阿呆小记的原创作品,请联系作者获取转载授权,否则将追究法律责任
报错
java.lang.IllegalArgumentException: System memory 259522560 must be at least 471859200. Please increase heap size using the --driver-memory option or spark.driver.memory in Spark configuration.
at org.apache.spark.memory.UnifiedMemoryManager$.getMaxMemory(UnifiedMemoryManager.scala:217)
at org.apache.spark.memory.UnifiedMemoryManager$.apply(UnifiedMemoryManager.scala:199)
at org.apache.spark.SparkEnv$.create(SparkEnv.scala:330)
at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:175)
at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:256)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:423)
at partOne$.<init>(partOne.scala:17)
at partOne$.<clinit>(partOne.scala:141)
at partOne.main(partOne.scala)
翻译:系统内存259522560必须至少为471859200。请使用--driver-memory选项或spark增加堆大小.
该问题出现原因是因为JVM
申请的memory
不够导致无法启动SparkContext
。
解决一
通过设置SparkContext
增加内存:
// 创建环境
val conf = new SparkConf()
.setAppName("log_analysis").setMaster("local[6]")
.set("spark.testing.memory", "512000000")
解决二
在idea中进行相关的配置,修改内存大小:
接着又报错:The specified size exceeds the maximum representable size.
指定的大小超过了最大可表示大小。