MapReduce與Spark的異同

2021-10-04 08:59:18 字數 722 閱讀 8601

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

1.spark把運算的中間資料存放在記憶體,迭代計算效率更高,spark中除了基於記憶體計算外,還有執行任務的dag有向無環圖;

mapreduce的中間結果需要儲存到磁碟,這樣必然會有磁碟io操作,應相效能降低;

2.spark容錯性高,它通過彈性分布式資料集rdd來實現高效容錯,rdd是一組分布式的儲存在節點記憶體中的唯讀性質的資料集,

這些集合是彈性的,某一部分丟失或者出錯,可以通過整個資料集的計算流程的血緣關係lineage來重新重建;

mapreduce失敗則只能重新計算;

3.spark相對來說更加通用,spark提供了transformation和action兩大類的多個功能api,另外還有流式處理sparkstreaming模組、圖計算graphx、機器學習庫mlib等等;

mapreduce提供了map和reduce兩種操作,流計算以及其他模組的支援比較缺乏;

4.spark框架和生態更為複雜,首先有rdd,血緣關係lineage、執行時間的有向無環圖dag、stage、task劃分等等、spark作業都需要根據不同業務場景的進行調優已達到效能要求;

mapreduce框架以及生態相對較為簡單,對效能的要求也相對較弱,但是執行較為穩定,適合長期後台執行。

5.spark執行多模式,包含local、standalone、yarn、mesos;

Spark與MapReduce的區別

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

Spark與MapReduce的對比誤區與真正優勢

3.spark相比mapreduce可以減少磁碟io嗎?spark比mapreduce快在哪?經常聽到有人說spark基於記憶體計算,將中間結果儲存在記憶體中,避免了磁碟io的次數。我覺得這句話的表面意思都對,但是很多人並沒有了解其真正的含義。知乎 什麼是記憶體計算,如果是指把磁碟中的資料讀取到記憶...

Spark與MapReduce的區別是什麼?

spark和mapreduce都是可以處理海量資料,但是在處理方式和處理速度上存在著差異,總結如下 1.spark處理資料是基於記憶體的,而mapreduce是基於磁碟處理資料的。mapreduce是將中間結果儲存到磁碟中,減少了記憶體占用,犧牲了計算效能。spark是將計算的中間結果儲存到記憶體中...