我們已經(jīng)進(jìn)入了“大數(shù)據(jù)時(shí)代”,2011 IDC Digital Universe報(bào)告說,數(shù)據(jù)增長(zhǎng)的速度已經(jīng)超過了摩爾定律(Moore's Law)。這種趨勢(shì)表明企業(yè)處理數(shù)據(jù)模式的轉(zhuǎn)變,即隔離的孤島正在被大型集群服務(wù)器所取代,這種服務(wù)器集群將數(shù)據(jù)與計(jì)算資源保存在一起。
從另一種角度來(lái)看這種模式轉(zhuǎn)變,這種轉(zhuǎn)變表明數(shù)據(jù)增長(zhǎng)的速度和數(shù)據(jù)量需要一種新的網(wǎng)絡(luò)計(jì)算方法。在這方面,谷歌就是一個(gè)很好的例子。早在1998年谷歌推出測(cè)試版搜索引擎時(shí),雅虎公司占主導(dǎo)地位,其他競(jìng)爭(zhēng)者還包括infoseek、Lycos等,而在短短兩年內(nèi),谷歌就成為主導(dǎo)搜索引擎供應(yīng)商。直到2003年,谷歌發(fā)布一份關(guān)于MapReduce的文件,我們才有幸窺見到谷歌的后端架構(gòu)。
谷歌的架構(gòu)顯示了該公司如何能夠索引更多數(shù)據(jù),以更快地獲得搜索結(jié)果,以及比所有競(jìng)爭(zhēng)對(duì)手更有效和更具成本效益地獲取這些結(jié)果。谷歌做出的轉(zhuǎn)變是將復(fù)雜的數(shù)據(jù)分析任務(wù)分成簡(jiǎn)單的子任務(wù),這些子任務(wù)在并行商品服務(wù)器中執(zhí)行。單獨(dú)進(jìn)程被用于映射Map這些數(shù)據(jù),然后將其縮小Reduce到中期或最終結(jié)果。這種MapReduce框架最終通過Apache的Hadoop供企業(yè)使用。
Hadoop簡(jiǎn)史
在2003年閱讀了谷歌的文件后,雅虎工程師Doug Cutting開發(fā)了基于Java的MapReduce,將其命名為Hadoop。在2006年,Hadoop成為Apache軟件基金會(huì)Lucene(一種流行的全文檢索庫(kù))的子項(xiàng)目,并在2008年成為頂級(jí)Apache項(xiàng)目。
從本質(zhì)上講,Hadoop提供了對(duì)大型商品計(jì)算機(jī)集群間的捕捉、組織、存儲(chǔ)、搜索、共享、分析和可視化不同數(shù)據(jù)源(結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化),并能夠從幾十臺(tái)服務(wù)器擴(kuò)展到上千臺(tái)服務(wù)器,每臺(tái)服務(wù)器都提供本地計(jì)算和存儲(chǔ)。
Hadoop包含兩個(gè)基本組成部分:首先是作為主要存儲(chǔ)系統(tǒng)的Hadoop分布式文件系統(tǒng)(HDFS),HDFS復(fù)制和分發(fā)源數(shù)據(jù)塊到服務(wù)器集群的計(jì)算節(jié)點(diǎn),以由一個(gè)或多個(gè)應(yīng)用程序進(jìn)行分析。其次是MapReduce,它創(chuàng)建了一個(gè)軟件框架和編程模型,用于編寫能夠并行處理大量分布式數(shù)據(jù)的應(yīng)用程序。