Spark與MapReduce對比優勢

表達能力

MapReduce需要將所有計算轉換爲Map和Reduce,難以描述複雜處理過程;

Spark除Map和Reduce外,還支持RDD/DataFrame/DataSet等多種數據模型操作,編程模型更加靈活。

磁盤IO

MapReduce每步運算都要從磁盤讀取數據,結束後寫入磁盤數據,僅有小部分數據作爲臨時緩存放入內存,磁盤IO開銷比較大;

Spark將中間結果直接放入內存,既提高了迭代運算效率,又避免了大量的重複計算,據官方提供數據,同樣迭代運算效率Spark:Hadoop=110:0.9。

任務延遲

MapReduce將任務分成一系列運算順序執行,每次運算涉及磁盤IO,任務間銜接不及時,需要等上步完成才能進行下步運算,無法滿足複雜任務和多階段計算任務需求;

Spark基於DAG任務調度執行機制,不涉及磁盤IO延遲,迭代運算更快。

內存管理

MapReduce任務在啓動時已經在JVM內指定了最大內存,不能超過指定的最大內存;

Spark在超過指定最大內存後,會使用操作系統內存,既保證了內存的基本使用,又避免了提早分配過多內存帶來的資源浪費

並行處理

MapReduce中一個進程運行一個task,按序執行;

Spark中一個線程運行一個task,增加了並行度。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章