HDFS Federation

    HDFS Federation是hadoop2.2.0(Hadoop2正式版本)中的新一代HDFS架構。下面的全部對HDFS Federeation的介紹都是基於官網的翻譯。

背景

HDFS Layers

HDFS主要有兩層: node

    1 Namespace 架構

        (1)由目錄、文件及塊組成 oop

        (2)它支持全部依賴於命名空間的文件系統操做如 建立、刪除、修改和列出文件及目錄。 性能

    2 Block Storage Service spa

        (1)塊管理(上版本的Namenode已經實現) 翻譯

                1)經過處理datanode註冊和定時心跳來提供datanode集羣成員身份 server

                2) 處理塊報告和維護塊位置 ip

                3) 支持塊相關的操做 如 建立、刪除、修改和得到塊位置。 hadoop

                4) 管理正在複製的塊的備份放置和塊的複製過程,刪除多餘的複製塊。 部署

            (2)存儲-經過datanodes在本地文件系統存儲塊及讀寫訪問實現。

        上一版本的HDFS集羣架構僅容許整個集羣有一個單一的namespace。一個單一的namenode管理namespace。HDFS Federation 經過添加HDFS文件系統對多個Namenodes/namespaces的支持來解決上一版本的架構限制。

Multiple Namenodes/Namespaces

    爲了水平擴展name server,federation使用多個獨立的Namenodes/namespaces。Namenodes是聯邦的,就是說,namenode們之間是獨立的而且不須要互相協調。對全部namenode,datanode都被用來作普通塊存儲。每個datanode在這個集羣全部的namenode中註冊。datanode發動週期心跳、塊報告,處理namenode們發來的命令。

HDFS Federation Architecture

    1 Block Pool

    Block Pool是指屬於一個namespace的全部塊的集合。Datanode們爲集羣中的全部block pool存儲塊。block pool的管理是獨立的。這樣,namespace能夠在爲新塊產生塊id時不考慮與其餘namespace的互相協調。一個namenode的失效不會影響datanode服務集羣中的其餘namanode。

    namespace和它的的block pool一塊兒被稱爲Namespace volume。它是一個完備的管理單元。當一個Namenode/namespace被刪除時,在datanode中關聯的block pool也會被刪除。在集羣升級期間,每一個namespace volume做爲一個單元來升級。

    2 ClusterID

    加入新的標識符ClusterID來標識集羣的全部節點。格式化namespace時,要提供或者自動產生這個標識符。這個ID應該用於格式其餘 Namenodes 到該羣集。

        主要優勢

            (1) namespace可擴展 - HDFS 集羣 存儲能夠水平擴展而namespace不能夠。大型部署或使用多個小文件部署受益於水平擴展namespace,而水平擴展namespace經過往集羣中添加多個namenode實現。

            (2)性能。在上個版本中文件系統的吞吐量因爲單點而受限。往集羣中添加更多的Namenode擴展了文件系統的讀寫吞吐量。

            (3)隔離。單一namenode不提供在多用戶環境下的隔離。一個試驗應用可使namenode超載並使關鍵應用的運行變慢。在多namenode狀況下,不一樣種類的應用和用戶能夠被隔離在不一樣的namespace。

相關文章
相關標籤/搜索