天天看点

spark 作业性能调优

目录

  • 1、分配更多资源、并行度、RDD架构与缓存
  • 2、shuffle 调优
  • 3、算子调优
  • 4、JVM调优、广播大变量、kryo序列化、fastutil优化数据格式等
  • 5、troubleshooting
  • 6、数据倾斜

1、分配更多资源、并行度、RDD架构与缓存

分配更多资源:

  • spark作业分配更多的executor
  • 对与每个executor分配更多的memory
  • 对于每个executor分配更多的cpu core

并行度:

  • 所谓并行度是指spark作业中每个stage阶段中可以执行的task数量
  • 提高每个stage可以执行的task,提高并行度,降低每个task处理的数据量
  • 官方推荐,task数量设置成spark application总cpu core数量的2~3倍
  • SparkConf conf = new SparkConf().set("spark.default.parallelism", "task数量")

RDD重构与缓存:

  • RDD架构重构与优化,尽量去复用RDD,差不多的RDD,可以抽取称为一个共同的RDD,供后面的RDD计算时,反复使用;
  • 公共RDD一定要实现持久化,持久化顺序为:纯内存无序列化;纯内存序列化;内存加磁盘无序列化;内存加磁盘序列化
  • 为了数据的高可靠性,而且内存充足,可以使用双副本机制,进行持久化;

2、shuffle 调优

3、算子调优

4、JVM调优、广播大变量、kryo序列化、fastutil优化数据格式等

5、troubleshooting

6、数据倾斜

继续阅读