Hadoop 源码目录树
1、NameNode
---FSNamesystem:
------FSDirectory 目录树
---------INodeDirectory节点目录
------------List
---------------INodeDirectory
---------------INodeFile
------------------BlockInfo[]文件块(一个文件块包括所有的DataNode 存储信息)
---------------------Object[] triplets 存储(DatanodeStorageInfo包话{DatanodeDescriptor,DatanodeStorage})
---------------------BlockCollection保存的是INodeFile
---------------INodeSymlink
---------INodeMap
------BlockManager hdfs块管理器
---------DatanodeManager(注册、删除、添加)
------------HostFileManager 读取include/exclude 文件,精细化管理DataNode上架,下架
------------NetworkTopology 网络拓扑图,用于机架感知
---------HeartbeatManager 心跳包管理器,与DataNode 保持通信
---------BlockTokenSecretManager 块安全验证管理器
---------BlocksMap 块映射[BlockInfo]存储所有块的信息
------LeaseManager 租约管理器
---NameNodeRpcServer 对外提供的所有RPC接口调用
---NameNodeHttpServer 对外提供的web 访问
---HAContext{NameNodeHAContext}用于NameNode HA 高可用性
---HAState包括ActiveState、BackupState、StandbyState 三种状态
2、DataNode
---BlockPoolManager
------List<BPOfferService>
---------BPServiceActor 注册、心跳、接收块、删除块、更新块、坏块报告等
---FsDatasetSpi {FsDatasetImpl}数据节点,对所有目录数据块文件操作
---DataXceiverServer 数据节点,数据接收、发送服务
---DataBlockScanner 数据节点块扫描器
---DirectoryScanner 数据节点目录扫描器
---BlockPoolTokenSecretManager
---HttpServer2 对外提供的Web访问