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