Spark最大内存逐渐增加

时间:2018-06-30 12:42:59

标签: scala apache-spark

我将Spark作为三个节点(1个主节点和2个从属节点)独立使用。并且我发现即使我指定了dvc.filename = gists[indexPath.row].files.key dvc.rawUrl = gists[indexPath.row].files.value --driver-memory,最大内存也逐渐增加,并且变得越来越慢,最终遇到内存已满错误

这就是我运行Spark提交的方式

--executor-memory

我无法共享全部代码,因为它很大,但是主要工作是迭代列表并为每个元素计算一些建议,每次迭代我都在下面打印此代码

sudo /home/ubuntu/spark-2.3.0-bin-hadoop2.7/bin/spark-submit \
--executor-memory 12g --executor-cores 6 \
--driver-memory 12G --driver-cores 8 \
--master spark:url:7077

当我的火花刚刚开始运行时,“最大内存”就很低,如val runtime = Runtime.getRuntime val mb = 1024*1024 somelist.foreach(x => { ... println(s"recs for petId: $pet done, took " + (System.nanoTime - startTime) / 1e9d + " secs") println("** Used Memory: " + (runtime.totalMemory - runtime.freeMemory) / mb) println("** Free Memory: " + runtime.freeMemory / mb) println("** Total Memory: " + runtime.totalMemory / mb) println("** Max Memory: " + runtime.maxMemory / mb) ... }) ,但是随着它的运行,它会像4551一样逐渐增加,但是如果我未指定11532,则最大内存将--driver-memory 12G不对,因为我的驱动程序节点只有16G内存。

起初,我认为这是25345的问题,所以我在第100次迭代中添加了GC,似乎可以与System.gc()一起工作,但是Used Memory仍然相同。这是否意味着内存泄漏?还是有一些我可以签出的清单?预先感谢

0 个答案:

没有答案