org.apache.hadoop.hdfs.server.namenode.BlocksMap.BlockInfo
描述:block元数据的内部类。Block属于哪些DataNodes。
INodeFile inode;文件节点在NameNode中的映射。
Object[] triplets;文件的块列表。该数组包含了DataNode的引用。triplets[3*i]存放的DatanodeDescriptor。
triplets[3*i+1]存放的是指向前向的blocks,triplets[3*i+2]存放的是下面的Blocks引用。
BlockInfo(Block blk, int replication):赋值给triplets=new Object[3*replication]
方法:
DatanodeDescriptor getDatanode(int index):
返回DatanodeDescriptor,triplets[3*index]
BlockInfo getPrevious(int index):
返回BlockInfo,triplets[index*3+1]
BlockInfo getNext(int index):
返回BlockInfo,triplets[index*3+2]
void setDatanode(int index, DatanodeDescriptor node):设置block属于哪个DataNode。
boolean removeNode(DatanodeDescriptor node):找到节点、将最后节点替换node。
org.apache.hadoop.hdfs.server.namenode.BlocksMap
该类维护了从block到其元数据的一个映射。
int capacity:跟踪HashMap容量增长。
final float loadFactor:加载因子。
Map<BlockInfo, BlockInfo> map:存放所有Block信息。