1 Spark用到序列化的地方 更改底层序列化的方法,如kryo
2 配置多临时文件目录 spark.local.dir参数。当shuffle 可以创建多个文件夹,每个文件夹都对应一个真实的硬盘
spark.local.dir=/home/tmp,/home/tmp2,/home/tmp3
3 启用推测执行机制 可以设置spark.speculation true
4 用mapPartition 代替map方法 map方法对RDD的每一条记录逐一操作。mapPartitions是对RDD里的每个分区操作
5 Spark的GC调优 比如用G1 GC
Spark的数据倾斜问题
1 group by(分组) 引起的数据倾斜
解决 : 在分组的key上加上随机数字,达到随机分区的效果