hdfs namenode format (续)

看过路fsimage这个文件的存储,再看看其它三个文件的存储,其它三个文件的存储都很简单,先来看edits文件,

editLog.createEditLogFile(getImageFile(sd, NameNodeFile.EDITS));

  public synchronized void createEditLogFile(File name) throws IOException {
    EditLogOutputStream eStream = new EditLogFileOutputStream(name);
    eStream.create();
    eStream.close();
  }

    void create() throws IOException {
      fc.truncate(0);
      fc.position(0);
      bufCurrent.writeInt(FSConstants.LAYOUT_VERSION);
      setReadyToFlush();
      flush();
    }

很清晰地看到create方法写进了一个int数据(LAYOUT_VERSION)

刚刚格式化自己的hdfs后,到自己的dfs.name.dir下的current/edits 查看下edits的状态,可以看到显示的大小为4,也就使4个字节。

下面来看最后一部分:    // write version and time files
    sd.write();

    public void write() throws IOException {
      corruptPreUpgradeStorage(root);
      write(getVersionFile());
    }

这里只提一下   corruptPreUpgradeStorage(root);这个方法是创建root目录下image目录用来记录old版本的fsimage。其它的太简单了,实在不想写了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值