Overview
Namenode 是HDFS中负责namespace管理的节点,Namenode 保存了当前集群中所存储的的所有的文件的元数据信息,namenode同时与集群中其它的节点通信,以保持元数据与系统中的文件的一致性,同时也和client通信,以响应client对文件的需要。
NameNode中主要有两个大类来处理这些需求,
FSNamesystem ---- 是一个门面类,主要通过该类调用系统中相应实现来维护namespace信息;
NameNodeRpcServer: 是一个ipc实现类,实现了各种protocols, 来与系统中的各个节点通信:
NamenodeProtocol: 用来与BackupNode,CheckpointNode,SecondaryNode通信交换数据;
ClientProtocol: 用来与DFSClient通信,读写系统中的文件信息;
DatanodeProtocol: 用来与DataNode通信,发布命令,接收DataNode的报告;
RefreshAuthorizationPlolicyProtocol: 刷新系统权限列表;
RefreshUserMappingsProtocol:刷新系统中用户映射信息;
GetUserMappingsProtocol:获取用户映射信息;
HAServiceProtocol:与组成HA的Node通信,监测Node状态,并在失败时执行failover操作。