目錄
- 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、資料傾斜