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