Hadoop 2.0近期的幾項進展

jopen 10年前發布 | 10K 次閱讀 Hadoop

本文分別從HDFS和YARN兩方面介紹Hadoop 2.0的最新進展。

至今Hadoop 2.0的穩定版本2.2.0已經發布3個月左右,在這三個月中,HDFS和YARN/MRv2均有重大進展,本文簡要對其進行介紹。注意,本文介紹的這些功能和特性,有的正在開發中,有的已經開發完畢,將出現在即將發布的Hadoop 2.3/2.4版本中。

1. HDFS進展

(1)對異構存儲媒介的支持

之前HDFS假設底層存儲媒介是同構的,性能完全一樣,比如全是HDD(Hard Disk Drive),但隨著新型媒介的出現以及對應成本的下降,很多公司開始嘗試使用新的存儲媒介,比如SSD。基于此,HDFS也緊跟時代發展潮流,將支持異 構存儲媒介,即一個HDFS的各個存儲節點上可以指定若干不同的存儲媒介,比如HDD、SSD等,這樣,用戶可以根據應用特點將不同類型數據存儲在不同媒 介上,以滿足性能需求。

相關參考資料:

設計文檔:Heterogeneous Storage for HDFS

Hadoop Jira鏈接: Enable support for heterogeneous storages in HDFS.

介紹性文檔:Heterogeneous Storages in HDFS

(2)DataNode Cache

即DataNode緩存,目前HDFS中個DataNode上緩存的數據并沒有通過適當的途徑暴露給外界應用程序,這使得各個DataNode上的 內存無法得到充分的利用,尤其是Hive、Pig、 Impala等這樣的計算框架無法利用DataNode的內存進行計算優化,比如Memory locality、讀優化等。該從能將中心化管理DataNode緩存。

相關參考資料:

設計文檔:Centralized cache management

Hadoop jira鏈接:Centralized cache management in HDFS

(3)HDFS ACL

ACL是Access Control Lists的簡稱,對HDFS而言,可認為一個文件/目錄訪問控制列表,這個列表記錄了哪些用戶對該目錄 /文件有哪些權限。目前HDFS的權限控制是與Unix/linux一致的,包括用戶、用戶組、其他用戶組三類權限,這種方式有很大局限性,比如有一份保 存在HDFS上的數據( sales-data),只有sales部門的leader Bob可以修改,該部門其他成員可以閱讀,但其他部門人則不可以閱讀和修改,為完成這個權限安排,可對該文件進行以下權限設置:

-rw--r—–-----  1 bob  sales    22K Nov 18 10:55 sales-data

隨著部門架構的調整,希望另一個leader Mary也可以修改這份數據,該怎么辦?如果希望另一個部門market的所有員工也可以閱讀這份數據呢?僅通過現有的權限機制是不是很難表達出來。這主要是文件擁有者只能有一個,用戶組也只能有一個等等造成的。

為了靈活解決以上問題,HDFS實現了ACL,了解MapReduce的用戶應該對這個機制很清楚,因為MapReduce一直在用。在HDFS中,每個文件/目錄可以對應一個ACL,描述哪些用戶對他們有什么權限。

設計文檔:HDFS ACLs Design

Hadoop jira鏈接:Implementation of ACLs in HDFS

(4)Rolling upgrade changes

目前HDFS已經完成了HA主備熱切換和版本兼容(通過引入Protocol Buffers)的設計,但對不停機NameNode升級和熱切換的支持仍待加強。

設計文檔:HDFS Rolling Upgrades High Level Design

Hadoop jira鏈接:Umbrella jira for improved HDFS rolling upgrades

2. YARN/MRv2進展

(1)Application History Server

目前在YARN中,只有MapReduce應用程序擁有JobHistoryServer,借助它,用戶可以直接在界面或者通過命令查看應用程序的 日志,但對于其他程序,比如Spark等,則沒有這樣的History Server,用戶必須登錄到對應節點上才能查看各個Container/Task的日志,非常不方便。Application History Server的出現將解決這一問題,有了它,任何應用程序的日志可以直接在WEB界面或者通過命令行查看。

設計文檔:YARN–321 : The Generic Application History Service

Hadoop jira鏈接:Generic application history service

(2)對long-running application的支持

YARN在產生之初是源于MapReduce這類短應用程序,但隨著YARN的發展,尤其是它逐步變為了一個通用的資源管理系統后,對長應用程序的 支持也迫在眉睫,長應用程序是指短時間內不會停止運行的任務,一般是一些服務,比如Http Server等,在即將發布的Hadoop 2.3/2.4版本中,也有對長應用程序輕量級的支持,但還不完善。

Hadoop jira鏈接:Roll up for long-lived services in YARN

(3)RM單點故障問題

在Hadoop 2.2.0中,ResourceManager存在單點故障,一旦ResourceManager掛了之后,整個集群不可用。為了解決這個問題,社區提出了以Zookeeper為核心的RM HA方案,沿用了HDFS HA的基本架構,我已經在 “Hadoop YARN單點故障解決方案(HA)介紹”、“Hadoop 2.0中單點故障解決方案總結”等文章中進行了介紹。

設計文檔:YARN ResourceManager Automatic Failover

Hadoop jira鏈接:ResourceManager (RM) High-Availability (HA)

3. 總結

Hadoop 2.0發展非常迅猛,相比于1.0經歷了7年左右才發布穩定版,Hadoop 2.0僅用了2年,這完全得力于眾多的代碼貢獻者和良好的社區氛圍,隨著Hadoop的日趨完善和使用者增多,Hadoop在大數據和云計算時代,必將發揮越來越大的作用。

來自:董的博客

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!