1、避免重复创建RDD
一份数据只创建一个RDD
2、多次使用同一个RDD,使用cache
3、尽量避免使用shuffle类的算子
4、使用map-side预聚合的shuffle操作
reduceByKey/aggregateByKey替代groupByKey
5、使用mapPartitions替代普通map
6、repartitionAndSortWithinPartitions替代repartition与sort类操作
7、广播大变量,保证一个Executor只有一份数据
8、尽量使用基础数据,避免使用HashMap、LinkedList产生大量GC