Hadoop源码分析FSNamesystem几个重要的成员变量
2012-09-27 00:15
411 查看
FSNamesystem中有几个非常重要的变量,对于理解NameNode的实现具有重要意义。下面,我们看一下这几个变量和他的作用。
lblocksMap:blocksMap是类BlocksMap的实例,其代表了Block→{INode、datanodes}的映射。具体代表了每一个Block在哪一个DataNode上存储。
datanodeMap:datanodeMap是类NavigableMap的实例,代表了datanode→block之间的映射关系。该map的key是StorageID,value是DatanodeDescriptor,即<String, DatanodeDescriptor>。该Map一般在下面三种情况下会被修改:
1.added to the map if it is a new storage id
2.Updated with a new datanode started as a replacement for the old one with the same storage id
3.Remove if and only if an existing datanode is restarted to serve a different storage id
corruptReplicas:corruptReplicas是CorruptReplicasMap的一个实例。corruptReplicas保存了文件系统中所有的损坏block。注意,只有一个block的所有备份存储都损坏才认为该block是损坏的。其保存的形式如下,一个block和所有保存该block的datanode,Block→TreeSet<DatanodeDescriptor>
host2DataNodeMap:host2DataNodeMap是类Host2NodesMap的实例,它保存了主机名到datanode之间的映射关系,即ip:port→DatanodeDescriptor的映射关系。
dir:dir是FSDirectory的实例,他里面包含了INodeFile和INodeDirectory的层次结构。INodeFile和INodeDirectory分别对应硬盘上的文件和目录。每一个INodeFile都包含了该文件所拥有的所有的数据块,即dir保存了file→blocks的映射。
lblocksMap:blocksMap是类BlocksMap的实例,其代表了Block→{INode、datanodes}的映射。具体代表了每一个Block在哪一个DataNode上存储。
datanodeMap:datanodeMap是类NavigableMap的实例,代表了datanode→block之间的映射关系。该map的key是StorageID,value是DatanodeDescriptor,即<String, DatanodeDescriptor>。该Map一般在下面三种情况下会被修改:
1.added to the map if it is a new storage id
2.Updated with a new datanode started as a replacement for the old one with the same storage id
3.Remove if and only if an existing datanode is restarted to serve a different storage id
corruptReplicas:corruptReplicas是CorruptReplicasMap的一个实例。corruptReplicas保存了文件系统中所有的损坏block。注意,只有一个block的所有备份存储都损坏才认为该block是损坏的。其保存的形式如下,一个block和所有保存该block的datanode,Block→TreeSet<DatanodeDescriptor>
host2DataNodeMap:host2DataNodeMap是类Host2NodesMap的实例,它保存了主机名到datanode之间的映射关系,即ip:port→DatanodeDescriptor的映射关系。
dir:dir是FSDirectory的实例,他里面包含了INodeFile和INodeDirectory的层次结构。INodeFile和INodeDirectory分别对应硬盘上的文件和目录。每一个INodeFile都包含了该文件所拥有的所有的数据块,即dir保存了file→blocks的映射。
相关文章推荐
- Hadoop 源码分析(二四)FSNamesystem
- ThreadPoolExecutor源码分析(一):重要成员变量
- Hadoop 源代码分析(二四)FSNamesystem
- Hadoop源码分析18:common包中的fs.FileSystem
- hadoop启动报FSNamesystem initialization failed
- hadoop源码分析系列(三)——org.apache.hadoop.fs包 ----(下)
- ndpi源码分析一--几个重要的结构体
- ThreadPoolExecutor源码分析(一):重要成员变量
- Hadoop源码分析_NameNode成员分析
- WARN org.apache.hadoop.hdfs.servåer.namenode.FSNamesystem: Get corrupt file b
- shttpd源码分析(3)几个重要数据结构
- Hadoop源码分析之_NameNode regular过程分析1
- namenode初分析:FSNamesystem<一>
- Hadoop源码分析之DistributedFileSystem
- Hadoop源码分析之_NameNode regular过程分析2
- Hadoop源码分析FSNamesystem几个重要的成员变量
- Hadoop-2.4.1源码分析--HDFS HeartBeat(心跳检测)之NameNode端处理数据块增量汇报
- ndpi源码分析一--几个重要的结构体
- ThreadPoolExecutor源码分析(一):重要成员变量
- Hadoop源码分析31 TaskTracke成员