Hadoop與Spark是當前兩個流行的大數據架構,也是非常重要的開源技術。對于Hadoop與Spark,業內很多專業人士都進行了對比分析。中培偉業《大數據平臺搭建與高性能計算最佳實踐》培訓蔣老師在這里就Hadoop與Spark兩大架構的認識發表了自己的看法。
Hadoop——Apache Hadoop 是受Google 的兩篇Paper( Mapreduce , Google File System )啟發誕生的。最早在Nutch項目里,2006年移入Hadoop,命名也成為行業內的一段談資。
Hadoop 主要包括兩步分,** Hadoop Distributed File System (HDFS) Hadoop MapReduce**。很 明顯了HDFS解決了存儲,MapReduce 更多情況下是一個編程框架。入門者最開始使用MapReduce 的例子基本都是進行詞頻統計。使用Map進行分詞,然后Reduce得到詞頻。
那經常聽到的Hive,Hbase 是什么? Hive 是建立在Hadoop 之上的數據倉庫,可以通過Sql查詢和實現一些MapReduce 操作。 Hbase 是建立在Hadoop之上的一種分布式非關系型數據庫。模型也是產生于Google的一篇research Bigtable: A Distributed Storage System for Structured Data 。用過的Cassandra也是一種Bigtable的實現。
你可能會聽到 Hadoop YARN ,YARN 是作業管理框架,蔣老師認為MapReduce 是建立在YARN上的。
Spark——在Spark 出來之后看到有人說Spark會代替Hadoop 。但經老師根據自己的認識給出了不同的觀點。蔣老師指出, Spark 的重點在于數據的處理和計算能力,它并沒有解決數據存儲問題。換句話說它相當于Hadoop Mapreduce的升級版。通常Spark都是和Hadoop 一起使用的。因為Spark需要HDFS這樣的存儲系統,Spark又比Hadoop Mapreduce 更快,個人感覺Api更豐富,對于機器學習算法來說更友好。 當然Spark 可以不需要Hadoop ,Hadoop 也可以不需要Spark. Spark 還提供了Spark Sql, Spark Stream,Spark Mlib, Spark GraphX 一些豐富的功能,而且支持Java, Scala, Python,R等多種語言。