为了账号安全,请及时绑定邮箱和手机立即绑定

星星之火java.lang.OutOfMemoryError:Java堆空间

星星之火java.lang.OutOfMemoryError:Java堆空间

德玛西亚99 2019-07-11 13:27:00
星星之火java.lang.OutOfMemoryError:Java堆空间我的集群:一个主节点,11个从节点,每个节点有6GB内存。我的设置:spark.executor.memory=4g, Dspark.akka.frameSize=512问题是:第一,我从HDFS读取了一些数据(2.19 GB)到RDD:val imageBundleRDD = sc.newAPIHadoopFile(...)第二,在这个RDD上做些什么:val res = imageBundleRDD.map(data => {                                val desPoints = threeDReconstruction(data._2, bg)                                  (data._1, desPoints)                              })最活的,刚过去的,提供给人类发展战略的产出:res.saveAsNewAPIHadoopFile(...)当我运行我的程序时,它显示:..... 14/01/15 21:42:27 INFO cluster.ClusterTaskSetManager: Starting task 1.0:24 as TID 33 on executor 9: Salve7.Hadoop (NODE_LOCAL) 14/01/15 21:42:27 INFO cluster.ClusterTaskSetManager: Serialized task 1.0:24 as 30618515 bytes in 210 ms 14/01/15 21:42:27 INFO cluster.ClusterTaskSetManager: Starting task 1.0:36 as TID 34 on executor 2: Salve11.Hadoop (NODE_LOCAL) 14/01/15 21:42:28 INFO cluster.ClusterTaskSetManager: Serialized task 1.0:36 as 30618515 bytes in 449 ms 14/01/15 21:42:28 INFO cluster.ClusterTaskSetManager: Starting task 1.0:32 as TID 35 on executor 7: Salve4.Hadoop (NODE_LOCAL) Uncaught error from thread [spark-akka.actor.default-dispatcher-3] shutting down JVM since 'akka.jvm-exit-on-fatal-error'  is enabled for ActorSystem[spark] java.lang.OutOfMemoryError: Java heap space任务太多了?PS当输入数据约为225 MB时,一切正常。我怎样才能解决这个问题?
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

若要向此添加经常未讨论的用例,我将在提交Spark应用通过spark-submit在……里面本土化模式。

根据手册掌握阿帕奇火花通过贾切克·拉斯科夫斯基:

您可以在本地模式下运行星火。在这种非分布式的单JVM部署模式中,SPark在同一个JVM中生成所有的执行组件-驱动程序、执行器、后端和主程序。这是唯一使用驱动程序执行的模式。

因此,如果你正在经历OOM错误与heap,就可以调整driver-memory而不是executor-memory.

以下是一个例子:

spark-1.6.1/bin/spark-submit
  --class "MyClass"
  --driver-memory 12g
  --master local[*] 
  target/scala-2.10/simple-project_2.10-1.0.jar


查看完整回答
反对 回复 2019-07-11
?
FFIVE

TA贡献1797条经验 获得超6个赞

看一看启动脚本这里设置了Java堆大小,在运行SparkWorker之前,您似乎没有设置这个大小。

# Set SPARK_MEM if it isn't already set since we also use it for this process
SPARK_MEM=${SPARK_MEM:-512m}
export SPARK_MEM

# Set JAVA_OPTS to be able to load native libraries and to set heap size
JAVA_OPTS="$OUR_JAVA_OPTS"
JAVA_OPTS="$JAVA_OPTS -Djava.library.path=$SPARK_LIBRARY_PATH"
JAVA_OPTS="$JAVA_OPTS -Xms$SPARK_MEM -Xmx$SPARK_MEM"

您可以找到要部署脚本的文档。这里.


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 545 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号