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