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軟體國際化的幾個問題及其解決方案
- webView的使用及其亂碼問題的解決方案WebView
- Java™ 教程(常見問題及其解決方案)Java
- Spark效能優化Spark優化
- 移動端點透問題及其解決方案
- Spark 3.x Spark Core詳解 & 效能優化Spark優化
- 換IP經常出現的問題及其解決方案
- 效能優化問題優化
- Apache Spark技術實戰之6 -- spark-submit常見問題及其解決ApacheSparkMIT
- spark效能優化(一)Spark優化
- ElasticSearch第3篇 大資料處理3大問題(“10000條”問題解決方案、hits total值統計總數不精確解決方案、大資料深度分頁效能問題3種最佳化方案)Elasticsearch大資料
- Shiro效能優化:解決Session頻繁讀寫問題優化Session
- Spark Streaming 效能優化Spark優化
- 快取三大問題及解決方案快取
- Spark效能優化:優化資料結構Spark優化資料結構
- 【Spark篇】---Spark解決資料傾斜問題Spark
- 初識SAP解決方案及其上雲優勢
- Spark(十三) Spark效能調優之RDD持久化Spark持久化
- spark效能優化幾點注意Spark優化
- JavaScript資料訪問效能優化方案JavaScript優化
- 關於sap效能優化的問題優化
- GaussDB(DWS)效能調優,解決DM區大記憶體佔用問題記憶體
- 查詢效率提升10倍!3種優化方案,幫你解決MySQL深分頁問題優化MySql
- 快取世界中的三大問題及解決方案快取
- 記一個效能優化問題優化
- MySQL 效能優化方案MySql優化
- 同源策略及其解決方案
- 一個SQL效能問題的優化探索SQL優化
- Spark效能優化指南:高階篇Spark優化
- Spark效能優化指南:基礎篇Spark優化
- Spark的效能調優Spark
- 快取過程存在的三大問題及解決方案快取
- Redis 大key(bigkey)問題的排查與解決方案Redis
- 數值最優化—優化問題的解(二)優化
- 跨域問題,解決方案 – CORS方案跨域CORS
- 跨域問題,解決方案 - CORS方案跨域CORS