NameNode节点的升级/回滚/提交

       我记得在前面已经以regular方式为例详细的讲述了有关NameNode启动的过程,在开始本文的重点之前,我觉得还是有必要在简单的描述一下这个过程:



        好了,再回到本文将要阐述的重点吧——NameNode节点的升级/回滚/提交,这一步实际上只发生在上面过程的第一步:加载FSImage+EditLog。前面我提过关系:文件->数据块持久化在本地磁盘上,所有对目录树的更新和文件名->数据块关系的修改,都必须能够持久化,为了保证每一次的修改不需要从新保存整个结构,HDFS使用操作日志来保存更新。先来看一下与FSImage+EditLog相关的文件:

目录current:


目录image:

in_use.lock的功能是防止其它的NameNode节点读取该目录;fsimage保存的是文件系统的目录(包括文件名->数据块映射);edits则是保存文件数上的操作日志;fstime上一次新打开一个操作日志的时间(long)。image/fsimage是一个保护文件,防止0.13以前的版本启动出错(0.13以前的版本将fsimage存放在name/image目录下)。那么,NameNode在完成升级/回滚/提交时,对这些文件做了哪些操作呢?


      在理想的情况下,上面的升级/回滚/提交可以顺利的完成,但是也难免会出现一些异常情况,特别是在进行上述操作的过程中,NameNode节点出现突然断电事件。不要紧,NameNode在启动加载FSImage+EditLog时有一个自动恢复的处理,当然这一个过程明显发生在真正load FSImage+EditLog之前。下面我们来看看NameNode节点在异常发生之后可以处于那些中间状态,以及它在下一次启动时是如何处理的。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值