Hadoop 2.0 — 讓大象跳舞的 YARN

Hadoop Summit 2013 行後記 2


實踐 Release Early, Release Often 開源精神的 Apache Hadoop

Hadoop 這頭大象自 2006 年 2 月被 Doug Cutting 送進 Apache Software Foundation 餵養以來,已歷經 7 又 1/2 個年頭,從官網的 Hadoop Releases 紀錄網頁,我們可以得到逐年的發行次數統計:

年度
發行次數
2007
5
2008
14
2009
5
2010
2
2011
6
2012
13
2013 (截至 8.24)
11
總計
56
年平均
8
表 1. Hadoop 歷來發行次數統計
(製表:Fred Chiang, Aug. 24, 2013)

其中從首筆紀錄的 0.14.1 (2007.9.4 發行) 到 1.0.0 (2011.12.27 發行),歷經 4 年又 3 個月,真可謂大象起步早,漫漫 (慢慢) 走長路。

圖 1. Hadoop 版本演進史
Source: P.6, 
Running YARN at Scale
  
從 Apache Hadoop (Core) 的單一專案,由於充分發揮 Open Source Community 著重的 Release Early, Release Often 精神,讓相關 Stakeholders 對於長期發展具有信心,繼之開出一個個的相關專案,如 HBase、Pig、Hive、Mahout、ZooKeeper、Sqoop 等,終成一個龐大的 Ecosystem,且還在持續的擴大當中。 

Hadoop 演化的必然:適用更快、更廣的應用場景;召喚 YARN

隨著 Hadoop Ecosystem 的板凳加長加寬,應用的及時性 (In-time) 需求,也從批次處理 (Batch Process),走向近即時處理 (Near Real-time Process);更多的應用類型,如 Index/Search、In-memory Computing、Streaming Text、Graph Processing (圖式處理,非圖形處理) 等,都希望藉由 Hadoop 核心的分散式檔案系統與資料在地 (Data Locality) 運算,來將資料平行處理的規模與效能,提昇到另一個層次。

於是,YARN (Yet Another Resource Negotiator,亦稱 Map/Reduce v2 或 MRv2) 誕生了,它是 Hadoop 2.x 新架構中效率更高的資源管理核心。2012.5.23,Hadoop 2.0.0-alpha 發行了,截至目前為止,最後更新版本為 2013.8.23 發行的 2.0.6-alpha。

圖 2. Hadoop 2.0 新架構 - YARN
Source: P.8, 
Hadoop Powers Modern Enterprise Data Architectures

在 Hadoop Summit 2013 San Jose 兩天的研討會議中,有一定份量的主題演講,就圍繞在新一代 Map/Reduce v2 框架 —— YARN,與其上的各種應用類型專案的介紹上。

如圖 2. 左邊所示,在 Hadoop 2.0 的架構中,原來做批次處理的 Map/Reduce 應用程式,包含 Pig、Hive,可以在不修改程式碼的情況下,重新編譯,即能跑在 Map/Reduce over YARN 的軟體堆疊上。而更多新、舊的應用場景,如 HBase、Giraph、Spark、Storm、OpenMPI、Tez,也都能在同一個平行運算框架 YARN 上執行。

Big Data 處理的目的,很大部分是為了進一步分析資料,挖掘巨量、多結構化資料背後的意圖。在 Hadoop 1.0 時代,各種處理與分析的方法或工具,仰賴 Map/Reduce 甚巨。以後在 Hadoop 2.0 時代,有了 YARN,讓各種處理與分析的方法或工具可以與 Map/Reduce 平等運作,都能讀取與寫入 HDFS。這些基於 YARN 的應用類型,可以歸結為四大類:
  1. Batch (批次處理):如原來的 Map/Reduce (v1)。
  2. Interactive (互動處理):如新增的 Tez (ASF Incubator),可整合 Pig 與 Hive 應用。
  3. Online (線上查詢):如 HBase、Hoya (Hortonworks 推的 HBase on YARN)。
  4. Streaming (文字串流):如 Storm 或 Kafka (ASF Incubator)。 
雖然 Hadoop 2.0 還在 Alpha 階段,但根據報導,Yahoo! 目前有 30,000 個節點正在運行 YARN,而 Cloudera CDH 4.2、Hortonworks HDP 2.0 等主流 Hadoop 發行版本都會包含 YARN。所以我們可以說:Hadoop 2.0 的趨勢已經確立;投入早,回收亦早。

Big Data 舞林,Hadooper 安身之道

我知道,一下子要學很多新東西,很累。新的、舊的,Hadoop Ecosystem 專案多多,就像要學跳國際標準舞,恰恰、倫巴、捷舞、狐步、森巴、探戈、鬥牛、華爾滋、快步舞......,該如何選取、要如何進入?

其實,除非角色特殊,否則不必窮舉盡學,就挑您最有興趣、最能致用的開始吧。一種應用類型先徹頭徹尾搞懂了,自然容易橫向觸類旁通。

至於已經沉浸在 Hadoop 1.0 世界的 Hadooper,則不用擔心所學、已經投入的資源會白費,因為在 Hadoop 2.0 的設計中,向後相容 (Backward Compatibility) 已被慎重考量。
    

(2013.8.26) 續記......  25 August, 2013: Release 2.1.0-beta available

沒有錯,就在本文發表後不到 24 小時的時間內,Apache Hadoop 宣佈 2.1.0-beta 發行了。果然是 Release Often 的典範。

看來,在 2013 年底或 2014 年初,社群可望實踐發行 Hadoop 2.x 正式版本的承諾。




留言