DataNode端数据存储和管理DataStorage和FSDataset解析(2)

首选看到这个循环是对hdfs-site.xml这个配置文件中,配置的每个存储路径进行检查。具体检查的通过StorageDirectory的analyzeStorage方法进行,该方法会返回当前存储处于何种状态(这个状态在前边的博客中已经讲述,主要是升级过程可能造成DN处于多种状态)。如果是NORMAL说明一切正常,不作处理;如果是NON_EXISTENT说明配置项中的这个目录不存在;如果是NOT_FORMATTED,说明命令是进行格式化的操作(Hadoop dfs -format),通过 format(sd, nsInfo); 方法格式化;其他状态通过sd.doRecover(curState)方法,进行处理。

通过上面的描述很容易发现StorageDirectory的对象,在处理的各个部分都起着关键作用。那么来分析下这个StorageDirectory类的主要作用,StorageDirectory是DataStorage父类Storage中的一个内部类

182   public class StorageDirectory {   183     File              root; // root directory    184     FileLock          lock; // storage lock    185     StorageDirType dirType; // storage dir type  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/10d6a59d1cb7354c7523970371d9c55a.html