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,因為在未來你將獲得更多收穫。 」
(責任編輯:呂光)