我对spark-1.5.2中的执行器和驱动程序内存的配置感到困惑。
我的环境设置如下:
3 Node MAPR Cluster - Each Node: Memory 256G, 16 CPU
Hadoop 2.7.0
Spark 1.5.2 - Spark-on-Yarn
输入数据信息:
我正在使用spark sql查询带有spark on yarn的配置单元上下文,但是它比配置单元慢得多,而且不确定spark的内存配置是否正确,
这些是我的配置,
export SPARK_DAEMON_MEMORY=1g
export SPARK_WORKER_MEMORY=88g
spark.executor.memory 2g
spark.logConf true
spark.eventLog.dir maprfs:///apps/spark
spark.eventLog.enabled true
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.driver.memory 5g
spark.kryoserializer.buffer.max 1024m
如何避免spark java.lang.outofmemoryerror:java堆空间异常和gc开销限制超出异常???
非常感谢您的帮助!
1条答案
按热度按时间o4hqfura1#
乍一看,你的遗嘱执行人的记忆已经用完了。我建议增加他们的记忆力。
请注意,spark\ worker\内存仅在独立模式下使用。spark\执行器\存储器用于Yarn模式。
如果没有在集群上运行任何其他配置,可以尝试以下配置:
我不建议设置大的执行器内存,因为这通常会增加gc时间。我看到的另一件事是,这些示例是内存优化的。如果这符合你的情况,请三思。