HDFS---Namenode

Overview

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

NameNode 启动



Generalize 

Hdfs为了实现向后兼容,在系统启动的时候会把一些与在NameserService相关的配置项用相同的值再创建一个原来系统中使用的配置项。

Security information

初始化用户机关信息。

LoadNamesystem

调用FSNamasystem.loadFromDisk初始Namesystem 实例,从而初始化文 件管理 的各个manager:
BlockManager:管理集群中全部的Block相关信息;
DatanodeManager:BlockManager经过该类管理与block现datanode相关连的信息。
FSImage:FSNamesystem,经过该类存储系统中文件的给构信息;
FSDirecoty:经过该类与本地文件系统创建连系;
SnapshotManager



Initialize NamenodeRpcServer


StartHttpServer


Start all Services and RpcServer