NameNode启动中image文件处理流程

      NameNode时与image文件相关的大概有下面三步操作:

 

第一步  加载image

NameNode启动后时首先加载硬盘上的fsimage文件(保持了整个命名空间)和edits文件(保持了命名空间的操作日志),在内存中merge后将新的fsimage写到磁盘上,即做一次checkpoint。

其中加载过程如图1所示:

 


 

                                                  图1 加载image文件流程

通常NameNode配置两个目录来存放fsimage&edits文件,分布是本地磁盘和NFS,防止NameNode所在机器磁盘坏掉后数据丢失。

每个目录下都保持了一个fstime文件,里面记录了最近一次checkpoint时间。NameNode启动时根据checkpoint时间加载最新的一份数据。

edits.new是个临时文件,只有SecondaryNameNode正在做checkpoint的时候存在。

 

     第二步 保存image

    NameNode加载完fsimage&edits文件后,会将merge后的结果写到磁盘上。写的过程会对本地磁盘和NFS 依次 做图2所示的操作。

 

 

                                       图2 保存image文件流程

这一步做完后,磁盘上有一份原始的fsimage文件,一份最新checkpoint文件:fsimage.ckpt,另外edits&edits.new为空文件(4个字节)。

 

    第三步 滚动image文件

写完checkpoint后,NameNode会对磁盘上的文件做一次滚动(重命名),如图3所示:

 

 

                                     图3 滚动image文件流程

该步骤将fsimage.ckpt重命名为fsimage(覆盖原有fsimage文件),edits.new重命名为edits(覆盖原有edits文件),并将最新时间戳写入fstime文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值