所有NN开头的都是namenode的意思。NNStorage的创建又干了什么?如下所示,首先他给每一个imagedirs分类,分为IMAGE或IMAGE_AND_EDITS和EDITS三类,如下所示:

有了NNStorage以后我们再继续看看FSEditLog的创建都干了什么。如下所示,它将上面类型为edits的存储添加到journals中,然后设置editlog的状态为between_log_segments。中间状态。并不是核心内容,所以这块可以暂时忽略。我们接着往下看。
journals.add(new JournalAndStream(new FileJournalManager(sd)));
state = State.BETWEEN_LOG_SEGMENTS;
fsImage有了已后就到FSNamesystem的创建了。注意在这之前image中的FSNamesystem还是空的。我们接着看FSNamesystem的创建。如下所示,它的创建做的事情不多。不过FSDirectory是比较关键的。也是在这里上面的image的system被真正赋值的。

所以再往下看nsys.dir.fsImage.format(clusterId);这个也就是格式化的关键了。如下所示干了二件事,我们一点点看。

首先是storage的格式化,这个格式化主要做了三件事,清除源数据,写数据,写日志,如下所示,清除就不看了。有兴趣的大家回去看看。就是先删除再创建。
