hadoop hdfs总结 NameNode部分-- 概述
以后的代码总结全部基于cloudera CDH3B2源码进行。
NameNode需要处理三部分工作:
1、NameNode需要对内存中的数据进行管理,包括有INode信息,Block信息,其中INode信息是间断性的向磁盘刷,进行固话,而Block信息则是在启动过程中从Datanode的心跳汇报中获得的。在这个过程中,还需要对日志进行处理,包括FSImage和Editlog。
2、与DataNode进行通信。
3、与Client进行通信。
其中2、3是通过底层的IPC框架完成,2、3将会在后面对DataNode和Client进行介绍时详细说明。
hdfs的设计参照了linux ext文件系统的设计,也有INode,Block等概念。在NameNode中INode是元数据信息(metadata),同时由于其分布式特点,必须包含了Block对应的DataNode信息以及DataNode所有包含的Block信息,即对应的BlockMap。同时,NameNode的日志保存了元数据信息。