文章的標(biāo)題看上去很幼齒很科普,但實際上那些天天觀賞大數(shù)據(jù)演講的管理層技術(shù)小白來說,他們永遠(yuǎn)不會公開問出這個問題。 大數(shù)據(jù)是個鋪天蓋地的詞,而談?wù)摯髷?shù)據(jù)又不可避免地要提到Hadoop,遺憾的是今天大多數(shù)大數(shù)據(jù)鼓吹者,甚至專業(yè)人士其實并不能說清楚Hadoop到底是什么玩意,以及有何功用,而他們的管理層小白聽眾更是一頭霧水。 眾所周知,Hadoop是Apache軟件基金會管理的開源軟件平臺,但Hadoop到底是什么呢?簡單來說,Hadoop是在分布式服務(wù)器集群上存儲海量數(shù)據(jù)并運行分布式分析應(yīng)用的一種方法。 Hadoop被設(shè)計成一種非常“魯棒”的系統(tǒng),即使某臺服務(wù)器甚至集群宕機(jī)了,運行其上的大數(shù)據(jù)分析應(yīng)用也不會中斷。此外Hadoop的效率也很高,因為它并不需要你在網(wǎng)絡(luò)間來回?fù)v騰數(shù)據(jù)。 以下是Apache的正式定義:
如果更深入地分析,我們發(fā)現(xiàn)Hadoop還有更加精彩的特性。首先,Hadoop幾乎完全是模塊化的,這意味著你們能用其他軟件工具抽換掉Hadoop的模塊。這使得Hadoop的架構(gòu)異常靈活,同時又不犧牲其可靠性和高效率。 Hadoop分布式文件系統(tǒng)(HDFS) 如果提起Hadoop你的大腦一片空白,那么請牢記住這一點:Hadoop有兩個主要部分:一個數(shù)據(jù)處理框架和一個分布式數(shù)據(jù)存儲文件系統(tǒng)(HDFS)。 HDFS就像Hadoop系統(tǒng)的籃子,你把數(shù)據(jù)整整齊齊碼放在里面等待數(shù)據(jù)分析大廚出手變成性感的大餐端到CEO的桌面上。當(dāng)然,你可以在Hadoop進(jìn)行數(shù)據(jù)分析,也可以見gHadoop中的數(shù)據(jù)“抽取轉(zhuǎn)換加載”到其他的工具中進(jìn)行分析。 數(shù)據(jù)處理框架和MapReduce 顧名思義,數(shù)據(jù)處理框架是處理數(shù)據(jù)的工具。具體來說Hadoop的數(shù)據(jù)處理框架是基于Jave的系統(tǒng)——MapReduce,你聽到MapReduce的次數(shù)會比HDFS還要多,這是因為: 1.MapReduce是真正完成數(shù)據(jù)處理任務(wù)的工具 2.MapReduce往往會把它的用戶逼瘋 在常規(guī)意義上的關(guān)系型數(shù)據(jù)庫中,數(shù)據(jù)通過SQL(結(jié)構(gòu)化查詢語言)被找到并分析,非關(guān)系型數(shù)據(jù)庫也使用查詢語句,只是不局限于SQL而已,于是有了一個新名詞NoSQL。 有一點容易搞混的是,Hadoop并不是一個真正意義上的數(shù)據(jù)庫:它能存儲和抽取數(shù)據(jù),但并沒有查詢語言介入。Hadoop更多是一個數(shù)據(jù)倉庫系統(tǒng),所以需要MapReduce這樣的系統(tǒng)來進(jìn)行真正的數(shù)據(jù)處理。 MapRduce運行一系列任務(wù),其中每項任務(wù)都是單獨的Java應(yīng)用,能夠訪問數(shù)據(jù)并抽取有用信息。使用MapReduce而不是查詢語言讓Hadoop數(shù)據(jù)分析的功能更加強(qiáng)大和靈活,但同時也導(dǎo)致技術(shù)復(fù)雜性大幅增加。 目前有很多工具能夠讓Hadoop更容易使用,例如Hive,可以將查詢語句轉(zhuǎn)換成MapReduce任務(wù)。但是MapReduce的復(fù)雜性和局限性(單任務(wù)批處理)使得Hadoop在更多情況下都被作為數(shù)據(jù)倉庫使用而非數(shù)據(jù)分析工具。參考閱讀:Hadoop只是窮人的ETL。 Hadoop的另外一個獨特之處是:所有的功能都是分布式的,而不是傳統(tǒng)數(shù)據(jù)庫的集中式系統(tǒng)。
|
|
來自: 昵稱35641324 > 《科技》