最近在研究hdfs的回滚升级,包括版本升级,数据快照备份等内容。版本升级分为为非HA的,HA的版本升级以及联合升级
我这次是2.6.5的版本升级到2.9.2
首先,先备份最新的dfs.namenode.name.dir下的镜像和编辑日志文件,防止意外;
官网上比较详细,个人推荐。但是上面csdn的一篇可以帮助是实战,但是部分没有讲述详细。
#首先此脚本针对的是HA的版本升级,版本由2.6升级到2.9
#可以先备份dfs.namenode.name.dir下的镜像和便捷日志文件,防止意外
#1、active上执行
hadoop26=/opt/hadoop-2.6.5
hadoop29=/opt/hadoop-2.9.2
NN1=192.168.146.51
NN2=192.168.146.52
ssh NN1
cd hadoop26/bin
./hdfs dfsadmin -rollingUpgrade prepare
#在actvie上和standy上查询是否可以回滚升级
./hdfs dfsadmin -rollingUpgrade query
exit
#####
#升级namenode
ssh NN2
#新版本中
cd hadoop26/sbin
./hadoop-daemon.sh stop namenode
cd hadoop29/sbin
./hadoop-daemon.sh start namenode -rollingUpgrade started
exit
ssh NN1
#新版本中
cd hadoop26/sbin
./hadoop-daemon.sh stop namenode
cd hadoop29/sbin
./hadoop-daemon.sh start namenode -rollingUpgrade started
exit
##升级datanode,分别在多台机器上执行
#/opt/hadoop-2.6.5/bin
cd hadoop26/bin
./hdfs dfsadmin -shutdownDatanode node2:50020 upgrade
./hdfs dfsadmin -shutdownDatanode node3:50020 upgrade
./hdfs dfsadmin -shutdownDatanode node4:50020 upgrade
./hdfs dfsadmin -getDatanodeInfo node2:50020
./hdfs dfsadmin -getDatanodeInfo node3:50020
./hdfs dfsadmin -getDatanodeInfo node4:50020
cd hadoop29/sbin
#/opt/hadoop-2.9.2/sbin,多台机器上执行
./hadoop-daemon.sh start datanode
./hadoop-daemon.sh start datanode
./hadoop-daemon.sh start datanode
ssh NN1
cd hadoop29/bin
./hdfs dfsadmin -rollingUpgrade finalize
####成功
###中间出现问题,可以使用该命令回滚
回滚
hadoop-daemon.sh -rollingUpgrade rollback