HDFS集群滚动升级以及回滚相关
- 介绍
- 不停机滚动升级
- 非联邦HA集群
- 联邦HA集群
- 停机升级--非HA集群
- HDFS集群降级和回滚
- 异同点
- 共同点
- 不同点
- HA集群降级(downgrade)
- 注意事项
- 集群回滚操作
介绍
- 在hadoop v2中,HDFS支持namenode高可用(HA),使得不停机升级HDFS变的可行。注:从hadoop2.4.0开始才支持滚动升级
- 因此为了在不停机的情况下升级hdfs集群,必须使用HA设置集群
- 在HA集群中,有两个或多个namenode,许多DataNode,一下journalnode和一下zookeepernode
- JN相对稳定,在大多数情况下,升级HDFS时不需要升级
- 滚动升级过程中,仅针对NNS和DNS,JNS和ZKNS都没有,升级JN和ZKN可能会导致集群停机
不停机滚动升级
非联邦HA集群
假设有两个名称结点NN1和NN2,其中NN1和NN2分别处于active和standby状态
联邦HA集群
- 联邦集群是拥有多namespace的集群。每个namespace对应一对主备namenode节点
- 上述这套集群就是速成的联邦+HA集群
- 联邦集群的升级过程与非联邦集群的升级过程比较相似,没有什么本质不同,知识需要为不同的namespace多重复执行几遍升级操作而已
停机升级–非HA集群
- 在升级的过程中,势必会存在服务短暂停止的时间,因为namenode需要重启,而这段时间并没有备用节点可选
- 整体过程同非联邦HA模式的4个步骤类似。不过步骤2的过程要修改
HDFS集群降级和回滚
异同点
共同点
- 都会将版本退回到升级前的版本
- 在升级的funalize动作执行之后,将不允许再执行降级和回滚
不同点
- 降级能支持rolling的方式,可以滚动降级,而回滚需要停止服务一段时间
- 降级过程只会将软件版本还原成升级前的,会保留用户现有的数据状态
- 而回滚则会将用户数据还原成升级前的状态模式,现有的数据状态不保存
- 升级慎重,降级、回滚更要慎重
生产环境中,集群升级之前必须进行调研,评估升级后的版本跟现有业务的兼容性
在测试环境下完整模拟升级流程,并且针对升级前集群状态进行备份,避免以外发生导致集群中断
不要奢求升级失败时,通过回滚、降级等操作挽救集群
HA集群降级(downgrade)
注意事项
- 降级与升级在HA模式有一个共同点
在操作namenode时,都是standby节点开始操作,等standby节点升/降结束,做一次切换,使另一个节点得以进行升/降操作,在全程中,始终保持一个active节点对外提供服务 - 降级过程namenode与DataNode的操作和在升级时操作完全相反
新版本一般在协议,api只兼容老版本的,如果先降级NN,那么则会造成DN是新本,NN是旧版
新版DN中的许多协议将会在旧版NN中可能不在兼容
所以这里必须要先降级DN,然后再把服务端NN进行降级 - 联邦集群和非HA集群的降级操作与升级操作想对应,进行相应操作命令替换即可
集群回滚操作
- 回滚注意事项
- rollback不支持滚动操作的方式,在操作期间,他需要集群对外停止服务
- rollback操作不仅会将软件版本退回到升级前的版本,还会将用户数据退回到升级前的状态
- 回滚步骤