spark為什么比mapreduce快?
首先澄清幾個誤區:
1:兩者都是基于內存計算的,任何計算框架都肯定是基于內存的,所以網上說的spark是基于內存計算所以快,顯然是錯誤的
2;DAG計算模型減少的是磁盤I/O次數(相比于mapreduce計算模型而言),而不是shuffle次數,因為shuffle是根據數據重組的次數而定,所以shuffle次數不能減少
所以總結spark比mapreduce快的原因有以下幾點:
1:DAG相比hadoop的mapreduce在大多數情況下可以減少磁盤I/O次數
因為mapreduce計算模型只能包含一個map和一個reduce,所以reduce完后必須進行落盤,而DAG可以連續shuffle的,也就是說一個DAG可以完成好幾個
mapreduce,所以dag只需要在最后一個shuffle落盤,就比mapreduce少了,總shuffle次數越多,減少的落盤次數就越多
2:spark shuffle 的優化
mapreduce在shuffle時默認進行排序,spark在shuffle時則只有部分場景才需要排序(bypass技師不需要排序),排序是非常耗時的,這樣就可以加快shuffle速度
3:spark支持將需要反復用到的數據進行緩存
所以對于下次再次使用此rdd時,不再再次計算,而是直接從緩存中獲取,因此可以減少數據加載耗時,所以更適合需要迭代計算的機器學習算法
4:任務級別并行度上的不同
mapreduce采用多進程模型,而spark采用了多線程模型,多進程模型的好處是便于細粒度控制每個任務占用的資源,但每次任務的啟動都會消耗一定的啟動時間,即mapreduce的map task 和reduce task是進程級別的,都是jvm進程,每次啟動都需要重新申請資源,消耗不必要的時間,而spark task是基于線程模型的,通過復用線程池中的線程來減少啟動,關閉task所需要的開銷(多線程模型也有缺點,由于同節點上所有任務運行在一個進行中,因此,會出現嚴重的資源爭用,難以細粒度控制每個任務占用資源)
審核編輯 黃宇
-
內存
+關注
關注
8文章
3064瀏覽量
74381 -
SPARK
+關注
關注
1文章
105瀏覽量
19989 -
MapReduce
+關注
關注
0文章
45瀏覽量
6314
發布評論請先 登錄
相關推薦
比克電池邱沫:超低內阻,比克大圓柱電池達成極致快充性能
![<b class='flag-5'>比</b>克電池邱沫:超低內阻,<b class='flag-5'>比</b>克大圓柱電池達成極致<b class='flag-5'>快</b>充性能](https://file1.elecfans.com/web3/M00/01/95/wKgZO2dWbO6ABsIlAAD_-zpfaq8252.png)
供應智融SW6106支持PD的多協議雙向快充IC
快充工作原理,解讀什么是快充協議及協議芯片的應用
![<b class='flag-5'>快</b>充工作原理,解讀什么是<b class='flag-5'>快</b>充協議及協議芯片的應用](https://file.elecfans.com/web2/M00/67/24/pYYBAGMRaBOAOCpAAAED9GVHvxc103.png)
快恢復橋損壞如何判斷
![<b class='flag-5'>快</b>恢復橋損壞如何判斷](https://file1.elecfans.com/web2/M00/05/38/wKgZombX_bqAa8vPAABOGljbOTc645.png)
2024快應用智慧服務生態白皮書發布,探索AI與快應用融合之路
廣汽能源與泰國Spark EV簽訂合作框架協議
spark運行的基本流程
![<b class='flag-5'>spark</b>運行的基本流程](https://file1.elecfans.com//web2/M00/F7/E3/wKgaomaDZoeAbeQsAAGiJ2LbwGw750.png)
Spark基于DPU的Native引擎算子卸載方案
![<b class='flag-5'>Spark</b>基于DPU的Native引擎算子卸載方案](https://file1.elecfans.com/web2/M00/F5/20/wKgZomZ-fKiAAsUcAAFEwmESLqQ755.png)
關于Spark的從0實現30s內實時監控指標計算
快充技術的演變與PW6606快充電壓誘騙芯片的應用
![<b class='flag-5'>快</b>充技術的演變與PW6606<b class='flag-5'>快</b>充電壓誘騙芯片的應用](https://file1.elecfans.com/web2/M00/E7/8E/wKgZomZMCCyABOksAACnT-Y0th8229.png)
如何利用DPU加速Spark大數據處理? | 總結篇
![如何利用DPU加速<b class='flag-5'>Spark</b>大數據處理? | 總結篇](https://file1.elecfans.com/web2/M00/C7/8C/wKgaomYLmjiANVkrAAIq5Cc3gGA857.png)
Spark基于DPU Snappy壓縮算法的異構加速方案
![<b class='flag-5'>Spark</b>基于DPU Snappy壓縮算法的異構加速方案](https://file1.elecfans.com/web2/M00/C5/B1/wKgZomYBSXOAHfkiAAL8llhFqoo690.png)
RDMA技術在Apache Spark中的應用
![RDMA技術在Apache <b class='flag-5'>Spark</b>中的應用](https://file1.elecfans.com/web2/M00/C3/6A/wKgaomXlNumAD4qkAAKXD6F2opA173.png)
基于DPU和HADOS-RACE加速Spark 3.x
![基于DPU和HADOS-RACE加速<b class='flag-5'>Spark</b> 3.x](https://file1.elecfans.com//web2/M00/C1/12/wKgZomXcZN2AYm7rAAIEZvTT08A684.png)
評論