Namenode 是HDFS中負責namespace管理的節點,Namenode 保存了當前集羣中所存儲的的全部的文件的元數據信息,namenode同時與集羣中其它的節點通訊,以保持元數據與系統中的文件的一致性,同時也和client通訊,以響應client對文件的須要。node
NameNode中主要有兩個大類來處理這些需求,app
FSNamesystem ---- 是一個門面類,主要經過該類調用系統中相應實現來維護namespace信息;spa
NameNodeRpcServer: 是一個ipc實現類,實現了各類protocols, 來與系統中的各個節點通訊:orm
NamenodeProtocol: 用來與BackupNode,CheckpointNode,SecondaryNode通訊交換數據;ip
ClientProtocol: 用來與DFSClient通訊,讀寫系統中的文件信息;it
DatanodeProtocol: 用來與DataNode通訊,發佈命令,接收DataNode的報告;io
RefreshAuthorizationPlolicyProtocol: 刷新系統權限列表;form
RefreshUserMappingsProtocol:刷新系統中用戶映射信息;集羣
GetUserMappingsProtocol:獲取用戶映射信息;cli
HAServiceProtocol:與組成HA的Node通訊,監測Node狀態,並在失敗時執行failover操做。