Hadoop之父Doug Cutting勾勒大數(shù)據(jù)平臺(tái)的未來(lái)
Apache Haddo是一個(gè)批處理計(jì)算引擎,它是大數(shù)據(jù)核心的開(kāi)源軟件框架。Hadoop并不適用于真正實(shí)時(shí)數(shù)據(jù)可見(jiàn)性所需要的在線互動(dòng)式數(shù)據(jù)處理,是這樣的嗎?Hadoop創(chuàng)造者兼Apache Hadoop項(xiàng)目創(chuàng)始人(同時(shí)也是Cloudera公司首席架構(gòu)師)Doug Cutting表示,他相信Hadoop有一個(gè)超越批處理的未來(lái)。
Cutting表示:“批處理有用武之地,例如你需要移動(dòng)大量數(shù)據(jù)以及分析所有數(shù)據(jù)的時(shí)候,但我認(rèn)為,人們真正想要的是批處理和在線計(jì)算的結(jié)合體。Hadoop將成為企業(yè)未來(lái)的主流數(shù)據(jù)處理系統(tǒng)的內(nèi)核。”
Hadoop
在紐約O'Reilly Strata Conference + Hadoop World大會(huì)上,Cutting解釋了Hadoop堆棧的核心思想以及其發(fā)展方向。
“Hadoop被看作是一個(gè)批處理計(jì)算引擎,事實(shí)上,這是我們開(kāi)始的地方(結(jié)合MapReduce),”Cutting表示,“MapReduce是一個(gè)很棒的工具,有很多關(guān)于如何在MapReduce上部署各種算法的書(shū)籍。”
MapReduce是一個(gè)編程模型,由谷歌公司設(shè)計(jì),用于使用分布式計(jì)算批量并行處理大規(guī)模數(shù)據(jù)。MapReduce得到一個(gè)輸入,然后將其分成很多更小的子問(wèn)題,這些問(wèn)題唄分配到節(jié)點(diǎn)來(lái)并行處理。然后,它們重新組合成那些子問(wèn)題的答案以形成輸出。
“這是非常有效的,”Cutting表示,“它允許你移動(dòng)你的計(jì)算到你的數(shù)據(jù),這樣一來(lái),當(dāng)你處理數(shù)據(jù)的時(shí)候就沒(méi)有到處復(fù)制數(shù)據(jù),并且它還形成了一個(gè)共享平臺(tái)。構(gòu)建分布式系統(tǒng)是一個(gè)復(fù)雜的過(guò)程,不是‘一夜間’就能完成的事情,所以我們不希望反反復(fù)復(fù)重新部署它。MapReduce被證明是一個(gè)堅(jiān)實(shí)的基礎(chǔ),在它上面,我們看到了已經(jīng)開(kāi)發(fā)了很多工具,例如Pig和Hive。”
他補(bǔ)充說(shuō):“當(dāng)然,這個(gè)平臺(tái)不僅僅針對(duì)批處理計(jì)算,它是一個(gè)很通用的平臺(tái)。”
Hadoop平臺(tái)的特性
為了說(shuō)明這一點(diǎn),Cutting描述了他認(rèn)為的Hadoop的兩個(gè)核心主題。
首先,Hadoop平臺(tái)具有很好的可擴(kuò)展性,它適用于存儲(chǔ)在內(nèi)存中的小數(shù)據(jù)集,同時(shí),它還能夠擴(kuò)展到處理龐大的數(shù)據(jù)集。
“而可擴(kuò)展性的一個(gè)關(guān)鍵因素是經(jīng)濟(jì)承受能力,雖然我們很少聽(tīng)到這方面的討論,”他表示,“我們?cè)谏唐酚布线\(yùn)行是因?yàn)樗试S你進(jìn)一步擴(kuò)展。如果你可以購(gòu)買(mǎi)10倍的存儲(chǔ)量,那么,你就可以存儲(chǔ)10倍的數(shù)據(jù)量。所以經(jīng)濟(jì)承受能力是關(guān)鍵,這也是我們使用商品硬件的原因,因?yàn)檫@是最經(jīng)濟(jì)實(shí)惠的平臺(tái)。”
他指出,同樣主要的是,Hadoop是開(kāi)源的。
“同樣地,開(kāi)源軟件是非常實(shí)惠的,”他表示,“人們開(kāi)發(fā)其應(yīng)用程序時(shí),最抵觸的平臺(tái)是免費(fèi)的平臺(tái)。你可能向供應(yīng)商付費(fèi),但你是為他們所提供的價(jià)值而付費(fèi),你不需要年復(fù)一年地付費(fèi),隨著時(shí)間的推移,供應(yīng)商需要通過(guò)向你提供價(jià)值來(lái)贏得你的信任和信心。”
除此之外,Hadoop的其他特性還包括:
“有這樣一個(gè)概念,在你加載數(shù)據(jù)的時(shí)候,你不需要使用嚴(yán)格的模式來(lái)限制你的數(shù)據(jù),”他表示,“而對(duì)于Hadoop,你可以以原始形式來(lái)保存數(shù)據(jù),然后,當(dāng)你使用數(shù)據(jù)的時(shí)候,再使用不同的模式。”
大數(shù)據(jù)領(lǐng)域另一種流行的做法是,在通常情況下,與更聰明的算法相比,分析更多的數(shù)據(jù)能夠幫助你更好地了解你的問(wèn)題。也就是說(shuō),你應(yīng)該花更多時(shí)間來(lái)收集數(shù)據(jù),而不是調(diào)整較小數(shù)據(jù)集所采用的算法。直觀地說(shuō),這很像是具有更高分辨率的圖像,如果你試圖分析圖片,你應(yīng)該選擇放大高分辨率圖片,而不是低分辨率圖像。
HBase是Hadoop中在線計(jì)算的例子
他指出,批處理并不是Hadoop的關(guān)鍵特性,而是Apache HBase,它是Hadoop堆棧的一部分,是非常成功的開(kāi)源非關(guān)系型分布式數(shù)據(jù)庫(kù)(模仿谷歌的BigTable)。HBase是一個(gè)在線計(jì)算系統(tǒng),而不是批處理計(jì)算系統(tǒng)。
Cutting解釋說(shuō):“HBase也支持批處理,它與HDFS以及Hadoop堆棧的其他組件共享存儲(chǔ),我認(rèn)為這也是其如此受歡迎的原因之一。HBase被整合到系統(tǒng)的其他部分中,而不是成為一個(gè)獨(dú)立的系統(tǒng),它可以與堆棧的其他組件進(jìn)行共享:它可以共享可用性、安全性、災(zāi)難恢復(fù)。”
展望Hadoop“圣杯”
如果Hadoop不單單是批處理計(jì)算平臺(tái),而是成為一個(gè)更通用的數(shù)據(jù)處理平臺(tái),它將會(huì)變成什么樣,并且它將如何達(dá)到那一步?
“對(duì)于大數(shù)據(jù)系統(tǒng)的‘圣杯’,我們認(rèn)為應(yīng)該具備很多因素,”Cutting表示,“當(dāng)然,我們會(huì)希望它是開(kāi)源的,并且能在普通硬件上運(yùn)行。我們還希望它具有線性擴(kuò)展:如果你需要存儲(chǔ)10倍數(shù)據(jù),你只需要購(gòu)買(mǎi)10倍的硬件即可,而不管你的數(shù)據(jù)集變得多大,都可以這樣擴(kuò)展。”
Cutting表示,性能方面同樣是如此,對(duì)于批處理性能,如果你需要更大的批處理吞吐量或更小的延遲,你只需要增加硬件數(shù)量即可。而對(duì)于交互式查詢,道理同樣如此。增加硬件將為你帶來(lái)性能和數(shù)據(jù)量方面的線性擴(kuò)展。
他補(bǔ)充說(shuō):“人們認(rèn)為當(dāng)你采用大數(shù)據(jù)平臺(tái)時(shí),你需要放棄某些東西,我不這樣認(rèn)為,我認(rèn)為在長(zhǎng)期來(lái)看,我們不需要放棄任何功能。”
谷歌為我們提供了路線圖
“谷歌為我們提供了路線圖,”他表示,“我們知道我們的前進(jìn)方向。在他們開(kāi)始發(fā)布他們的GFS和MapReduce論文后,我們就很快復(fù)制到Hadoop項(xiàng)目中,這些年以來(lái),谷歌在很多方面激發(fā)了這個(gè)開(kāi)源堆棧。谷歌的Sawzall系統(tǒng)催生了Pig和Hive,而B(niǎo)igTable直接啟發(fā)了HBase。我很激動(dòng)地看到今年谷歌發(fā)表的名為Spanner的文章,其中介紹了在分布式系統(tǒng)(在全球各地的數(shù)據(jù)庫(kù)上運(yùn)行的多表傳輸)中實(shí)現(xiàn)傳輸?shù)南到y(tǒng),很多人都會(huì)認(rèn)為這不會(huì)很快實(shí)現(xiàn),但卻為我們指明了前進(jìn)的方向。”
Cutting指出,Spanner是一種復(fù)雜的技術(shù),它并不會(huì)那么快成為Hadoop的一部分,但它指明了一個(gè)方向。同時(shí),他還提到了Impala,Cloudera發(fā)布的新的數(shù)據(jù)庫(kù)引擎,它可以使用SQL查詢存儲(chǔ)在HBase中的數(shù)據(jù)集。
Cutting表示:“我們知道我們的前進(jìn)方向,并且,我們知道如何實(shí)現(xiàn)我們的目標(biāo)。所以,我鼓勵(lì)大家現(xiàn)在開(kāi)始使用Hadoop,因?yàn)樵谖磥?lái)你將獲得更多收獲。”