Hadoop是Apache下的一個項目,由HDFS、MapReduce、Hive和ZooKeeper等成員組成,其中核心是MapReduce和HDFS,我們平常所說的Hadoop也大部分值得是這兩個東西。
HDFS是一個采用Master/Slave模式的高度容錯的分布式文件系統,DataNode節點用于存儲數據,NameNode節點維護集群內的元數據,Map負責對數據進行打散,Reduce負責對數據進行聚合,核心步驟為:首先將計算機任務拆分成若干個Map任務,然后分配到不同的節點上執行,每一個Map任務處理數據中的一部分,完成后生產的的中間結果,保存在磁盤中,Reduce將前面的若干個Map的輸出匯總到一起輸出。
Spark的核心在于RDD,可以理解為包含許多操作接口的數據集合,主要有Transformation(lazy)和action兩類算子
spark根據RDD之間的依賴關系切分成不同的階段stage,RDD之間的轉換的思想是 lazy的,也就是說不是實際發生的,而是以有向無環圖的方式記錄,通過一個Action算子,將積累的所有算子一次性執行。
除此之后,基于內存的Spark和基于磁盤的Hadoop也是一個區別。