executor对应container内存

executor对应的内存由两部分组成:
–exuecutor-memory控制了堆的大小
–spark.yarn.executor.memoryOverhead 控制堆外内存,默认值(384MB, 0.07 * spark.executor.memory),该值一般偏小,需要调大

executor内存
spark堆内存

日志

凡是cluster模式启动的作业,日志都没有打印在本地。因为main()直接在driver上运行

节约内存的好处

  1. 减少GC
  2. persist后的rdd,如果executor内存不够,不会缓存这部分数据或者将数据持久化到磁盘上,复用该rdd时,会增加执行开销

参考

Where do ‘normal’ println go in a scala jar, under Spark
Spark Architecture