如何设置Spark Executor Memory的大小

  • Post author:
  • Post category:其他


前边文章的铺垫终于可以运用到实际项目的开发及调优中了,下面我们就来看看实际集群环境下的Spark配置吧



一、Spark内存使用大体上的两类



执行内存





存储内存


。其中执行内存用于shuffle、join、sort、aggregation等操作的计算使用。存储内存用于cache对象、存储广播数据等。



二、Executor内存设置小了会发生的现象

1、频繁GC,GC超限,CPU大部分时间用来做GC而回首的内存又很少,也就是executor堆内存不足。

2、java.lang.OutOfMemoryError内存溢出,这和程序实现强相关,例如内存排序等,通常是要放入内存的数据量太大,内存空间不够引起的。

3、数据频繁spill到磁盘,如果是I/O密集型的应用,响应时间就会显著延长。



三、Spark内存模型

注:2.0+和2.0以前的版本默认值不同(spark.memory.fraction Spark2.0+默认值0.6 Spark1.6默认值0.75)

在这里插入图片描述



版权声明:本文为weixin_43878293原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。