linux怎么换节点提交任务,NameNode节点的升级/回滚/提交

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

ae333f50359a1e1be60e338a916263d2.gif

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

893148535ecca7642fefe1f2ebd7ce29.gif

目录current:

f8ea316a89890315a3e1fd4a823a2792.gif

目录image:

33d46fe7e489071a1dd4f5e9a3902f91.gif

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

fffef1b1aafc1155b203c9b045060708.gif

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

c1181b1a17ec8bed5a25663dd69b0ab0.gif0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值