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操做。