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