後面開始整理之前學習HDFS、Yarn時的筆記。
HDFS 1.x
主要角色:
- Namenode * 1
- 儲存、管理後設資料,包括檔案資訊、檔案與資料塊的對映。
- 處理與後設資料相關的操作,如列舉路徑、檢視檔案的邏輯大小等。
- 叢集的協調者,如Datanode上下線、資料塊的生命週期管理。
- Datanode * n
- 儲存、管理資料塊。
- 處理檔案內容的讀、寫請求。
- Client * n
- 叢集的使用者,通過具體的FileSystem訪問叢集(門面模式)。
HDFS 2.x
與HDFS 1.x相比,2.x新增了兩個重要feature:HA、Federation。
角色變化如下:
- Namenode * 2k
- HA支援一個Active Namenode和一個Standby Namenode,以一個Namespace(或Nameservice)的形式對外服務。在active掛時,自動將將standby切換為新的active,舊的active恢復後成為standby。
- Federation將多個Namespace合併為一個檢視,使用者可通過viewfs訪問。
- Datanode * n
- 所有節點共同對所有Namespace服務。在Datanode上,各Namespace擁有單獨的目錄(blockpool)。
- Client * n
- 2.x的Federation通過
客戶端掛載表
實現,要通過ViewFileSystem訪問NameNode。(這一點也算不上變化,多了一種門面而已)
- 2.x的Federation通過
HA大大加強了HDFS的可用性;Federation則將多個叢集的檢視合併在一起,方便使用者使用。兩個特性非常重要,HDFS 3.x在這兩個feature上繼續工作,如今HA以支援多standby,Federation支援伺服器端路由。後面再整理實現方案。
本文連結:HDFS1.x、2.x架構圖
作者:猴子007
出處:monkeysayhi.github.io
本文基於 知識共享署名-相同方式共享 4.0 國際許可協議釋出,歡迎轉載,演繹或用於商業目的,但是必須保留本文的署名及連結。