在大數據領域,hadoop和spark目前都佔有舉足輕重的地位,當然hadoop是大數據處理組件的開朝元老,Spark則是後起之秀,更有把前浪拍在沙灘上的趨勢。

當然兩者的對比,實際上是MapReduce和Spark運算模型的對比。

兩者採用了完全不同的運算模型,

MapReduce

採用的maptask並發+reduceTask並發的模型

map階段做局部簡單的數據處理,經過shuffle後用reduce做數據的聚合、關聯、疊加的操作

spark

1. 採用的是RDD數據模型,利用RDD之間的轉換做數據處理

2. RDD每次轉換都會生成新的RDD,形成流水線一樣的前後依賴關係

3. 整個數據處理在內存中進行,極大的提升了處理速度

比較

由於運算模型的不同,spark的運算速度要比MapReduce快很多,基於內存要快100倍,基於硬碟要快10倍以上

但是Spark本身不具備hadoop的hdfs這樣的分散式文件系統,Spark處理的很多數據仍是hdfs上的數據

而且Spark在很多情況下都運行在Hadoop的資源管理系統Yarn上

所以在很大程度上還是依賴Hadoop的

從另一個方面,Spark也在慢慢取代Hadoop,

hive on Spark:取代MapReduce作為hive的計算引擎,大大提高了hive的效率,更加導致MapReduce的使用率減少

綜合來看兩者更多的是相互結合,相互促進,技術的革新也是無法避免的

上述就是對Hadoop和Spark的一點拙見,歡迎大家進行評論指教,也麻煩大家關注、點贊

學習使人充實,祝大家出任CTO、迎娶白富美!!!O(∩_∩)O


相較於Hadoop來說,spark技術在架構上分析:

spark計算過程在內存中執行並在內存中存儲,直到用戶保存為止。除此之外,Spark處理工作的方式基本與Hadoop類似。

在性能上來說:

Spark在內存中運行速度比Hadoop快100倍,在磁碟上運行速度快10倍。

在應用成本上來說:

設置Spark集群可能會更加昂貴,還有就是由於Spark是較新的系統,因此它的專家更為稀少,成本更高。

對於以後的應用發展來說:

Hadoop主要是用來處理數據,而spark主要是用來計算數據,對人工智慧的開發更有優勢。

其實無論是那個技術,精通是很重要的!

以上只是自己的一點見解,有更多見解的歡迎一起交流學習!


推薦閱讀:
相关文章