Spark效能優化的10大問題及其解決方案
Spark效能優化的10大問題及其解決方案
問題1:reduce task數目不合適
解決方式:
需根據實際情況調節預設配置,調整方式是修改引數spark.default.parallelism。通常,reduce數目設定為core數目的2到3倍。數量太大,造成很多小任務,增加啟動任務的開銷;數目太少,任務執行緩慢。
問題2:shuffle磁碟IO時間長
解決方式:
設定spark.local.dir為多個磁碟,並設定磁碟為IO速度快的磁碟,通過增加IO來優化shuffle效能;
問題3:map|reduce數量大,造成shuffle小檔案數目多
解決方式:
預設情況下shuffle檔案數目為map tasks * reduce tasks
通過設定spark.shuffle.consolidateFiles為true,來合併shuffle中間檔案,此時檔案數為reduce tasks數目;
問題4:序列化時間長、結果大
解決方式:
Spark預設使.用JDK.自帶的ObjectOutputStream,這種方式產生的結果大、CPU處理時間長,可以通過設定spark.serializer為org.apache.spark.serializer.KryoSerializer。
另外如果結果已經很大,可以使用廣播變數;
問題5:單條記錄消耗大
解決方式:
使用mapPartition替換map,mapPartition是對每個Partition進行計算,而map是對partition中的每條記錄進行計算;
問題6 : collect輸出大量結果時速度慢
解決方式:
collect原始碼中是把所有的結果以一個Array的方式放在記憶體中,可以直接輸出到分散式?檔案系統,然後檢視檔案系統中的內容;
問題7: 任務執行速度傾斜
解決方式:
如果是資料傾斜,一般是partition key取的不好,可以考慮其它的並行處理方式 ,並在中間加上aggregation操作;
如果是Worker傾斜,例如在某些worker上的executor執行緩慢,可以通過設定spark.speculation=true 把那些持續慢的節點去掉;
問題9: 通過多步驟的RDD操作後有很多空任務或者小任務產生
解決方式:
使用coalesce或repartition去減少RDD中partition數量;
問題10:Spark Streaming吞吐量不高
解決方式:
可以設定spark.streaming.concurrentJobs
相關文章
- 前端跨域問題及其解決方案前端跨域
- Spark 資料傾斜及其解決方案Spark
- MFC軟體國際化的幾個問題及其解決方案
- Java™ 教程(常見問題及其解決方案)Java
- Spark效能優化Spark優化
- Spark 3.x Spark Core詳解 & 效能優化Spark優化
- Shiro效能優化:解決Session頻繁讀寫問題優化Session
- 換IP經常出現的問題及其解決方案
- spark效能優化(一)Spark優化
- 【Spark篇】---Spark解決資料傾斜問題Spark
- Spark效能優化:優化資料結構Spark優化資料結構
- Spark(十三) Spark效能調優之RDD持久化Spark持久化
- spark效能優化幾點注意Spark優化
- 初識SAP解決方案及其上雲優勢
- 記一個效能優化問題優化
- 同源策略及其解決方案
- 解決吞吐效能問題時的思路
- Spark SQL中出現 CROSS JOIN 問題解決SparkSQLROS
- MySQL 效能優化方案MySql優化
- 數值最優化—優化問題的解(二)優化
- 跨域問題,解決方案 – CORS方案跨域CORS
- 如何實現相親交友原始碼的CPU效能優化?解決方案梳理原始碼優化
- Mycat分片方案需要解決的問題
- 玩Deno遇到問題的解決方案
- Android效能優化——效能優化的難題總結Android優化
- iOS問題整理08----效能優化iOS優化
- 優化-mysql子查詢索引失效問題解決優化MySql索引
- Spark效能優化:診斷記憶體的消耗Spark優化記憶體
- Spark效能優化:對RDD持久化或CheckPoint操作Spark優化持久化
- Nginx 軟體層面加強Nginx效能優化的面試問答和解決方案Nginx優化面試
- 【ASK_ORACLE】由於索引分裂而產生的效能問題的解決方案Oracle索引
- oracle優化之生產系統不改程式碼解決SQL效能問題的幾種方法Oracle優化SQL
- 【BUG】鴻蒙模擬器虛擬化問題的解決方案鴻蒙
- Kafka常見的問題及解決方案Kafka
- 跨域問題及解決方案跨域
- HA腦裂問題解決方案
- SpringBoot跨域問題解決方案Spring Boot跨域
- 瞭解GaussDB效能調優之隱式轉換,解決慢SQL問題SQL
- MySQL問題定位-效能優化之我見MySql優化