Spark和MapReduce MR 的區別

2022-06-07 09:57:11 字數 918 閱讀 8662

首先spark是借鑑了mapreduce並在其基礎上發展起來的,繼承了其分布式計算的優點並改進了mapreduce

明顯的缺陷,但是二者也有不少的差異具體如下:

spark把運算的中間資料存放在記憶體,迭代計算效率更高;mapreduce的中間結果需要落地,需要儲存到磁碟,這樣必然會有磁碟io操做,影響效能。

spark容錯性高,它通過彈性分布式資料集rdd來實現高效容錯,rdd是一組分布式的儲存在節點記憶體中的唯讀性質的資料集,這些集合是彈性的,某一部分丟失或者出錯,可以通過整個資料集的計算流程的血緣關係來實現重建;mapreduce的話容錯可能只能重新計算了,成本較高。

spark更加通用,spark提供了transformation和action這兩大類的多個功能api,另外還有流式處理sparkstreaming模組、圖計算graphx等等;mapreduce只提供了map和reduce兩種操作,流計算以及其他

模組的支援比較缺乏。 

spark框架和生態更為複雜,首先有rdd、血緣lineage、執行時的有向無環圖dag、stage劃分等等,很多時候spark作業都需要根據不同業務場景的需要進行調優已達到效能要求;mapreduce框架及其生態相對較為簡單,對效能的要求也相對較弱,但是執行較為穩定,適合長期後台執行。

mr執行在yarn上;

spark

(1) local:本地執行

(2) standalone:使用spark自帶的資源管理框架,執行spark的應用

(3) yarn:將spark應用類似mr一樣,提交到yarn上執行

(4) mesos:類似yarn的一種資源管理框架

總結,spark生態更為豐富,功能更為強大、效能更佳,適用範圍更廣;mapreduce更簡單、穩定性好、適合離線海量資料探勘計算。

參考部落格:

Spark和MapReduce的本質區別

1.mr只能做離線計算,如果實現複雜計算邏輯,乙個mr搞不定,就需要將多個mr按照先後順序連成一串,乙個mr計算完成後會將計算結果寫入到hdfs中,下乙個mr將上乙個mr的輸出作為輸入,這樣就要頻繁讀寫hdfs,網路io和磁碟io會成為效能瓶頸。從而導致效率低下。2.既可以做離線計算,有可以做實時計...

Spark與MapReduce的區別

spark中最核心的概念是rdd 彈性分布式資料集 近年來,隨著資料量的不斷增長,分布式集群平行計算 如mapreduce dryad等 被廣泛運用於處理日益增長的資料。這些設計優秀的計算模型大都具有容錯性好 可擴充套件性強 負載平衡 程式設計方法簡單等優點,從而使得它們受到眾多企業的青睞,被大多數...

spark相比MapReduce的優勢

spark 比hadoop快的原因 資料本地性 排程優化 傳輸優化,最主要的是基於記憶體計算和引入了dag。hadoop的計算結果在磁碟中,spark是在記憶體中 資料計算任務需要多個步驟時,hadoop需要引入oozie等工具,但是spark有dag hadoop中,每乙個job 的計算結果都會儲...