HDFS Rolling Upgrade的实现要点分析

文章目录前言HDFS NameNode端针对Rolling Upgrade的调整HDFS DataNode端针对Rolling Upgrade的调整引用前言我们知道HDFS Rolling Upgrade功能在几年前比较早的时间早已实现,但是我们往往只注意怎么去做HDFS Rolling Upgrade这个事情本身,但是对于HDFS如何实现Rolling Upgrade这个功能可能了解的会比较少。本文笔者来聊聊其中部分要点的设计实现,为了做到Rolling Upgrade的快速和安全性,社区在这块实现
摘要由CSDN通过智能技术生成

前言


我们知道HDFS Rolling Upgrade功能在几年前比较早的时间早已实现,但是我们往往只注意怎么去做HDFS Rolling Upgrade这个事情本身,但是对于HDFS如何实现Rolling Upgrade这个功能可能了解的会比较少。本文笔者来聊聊其中部分要点的设计实现,为了做到Rolling Upgrade的快速和安全性,社区在这块实现上还是花了一些功夫的。本文主要基于HDFS Rolling Upgrade社区JIRA HDFS-5535:Umbrella jira for improved HDFS rolling upgrades来展开内容进行阐述。

HDFS NameNode端针对Rolling Upgrade的调整


HDFS针对Rolling Upgrade的实现,在NameNode和DataNode两边都进行了相关的调整实现。首先我们来看NameNode做了哪些模块的调整。

第一个,NameNode在pre-upgrade, upgrade in-progress, finalized, downgrade/rollback这些期间
元数据文件的一个状态处理,包括FsImage文件以及editlog文件。当我们执行Rolling Upgrade的rollback操作时,NN是可以支持撤销rolling upgrade时的那个transaction后发生的所有transaction。简单来说,它会忽略掉升级过程中执行过的那些事务transaction。

第二点,Layout的拆分,原有Layout一拆为二,分别有NameNode和DataNode各自对应的NamenodeLayoutVersion和DatanodeLayoutVersion。Layout内会分别记有NameNode,DataNode这边的当前版本所支持的各种feature或者标明目录结构版本的信息,相关JIRA HDFS-5754(Split LayoutVerion into NamenodeLayoutVersion and DatanodeLayoutVersion)

例如以下是NameNode NamenodeLayoutVersion和DataNode DatanodeLayoutVersion的内部信息:

public class NameNodeLayoutVersion {
    
  ...

  public enum Feature implements LayoutFeature {
   
    ROLLING_UPGRADE(-55, -53, -55, "Support rolling upgrade", false)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值