【HDFS实战】社区版 HDFS 2.8.2滚动升级3.4.1实践
社区版 HDFS 2.8.2滚动升级3.4.1实践
文章陆续免费更新,需优先的文章,请留言
文章目录
- 社区版 HDFS 2.8.2滚动升级3.4.1实践
- 非联合单集群升级验证方案
- 安装包
- 部署架构
- 滚动升级
- 升级组件
- 升级步骤
- 核心步骤命令
- 降级
- 降级步骤
- 核心步骤命令
- 验证内容
- 遗留疑问
- 联合集群部署架构
- JournalNode 下面简称JN
- NameNode 下面简称NN
- DataNode 下面简称DN
- ZooKeeperFailover Controller 下面简称ZKFC
非联合单集群升级验证方案
安装包
安装本软件,涉及的软件包为:
- jdk1.8.0_161.tgz
- hadoop-2.8.2.tar.gz
- hadoop-3.4.1.tar.gz
- hadoop-lzo-0.4.21-SNAPSHOT.jar
- Linux-amd64-64.tar.gz
- zookeeper-3.4.9.tar.gz
部署架构
滚动升级
升级组件
- JN
- NN
- DN
升级步骤
- 升级准备(fsimage备份)标记开始滚动升级
- 滚动升级JNs
- 滚动升级NNs、ZKFCs
- 滚动升级DNs
- 结束升级流程
核心步骤命令
-
备份集群fsimage
- 执行备份:
hdfs dfsadmin -rollingUpgrade prepare
- 查询备份结果:
hdfs dfsadmin -rollingUpgrade query
- 执行备份:
-
滚动升级JNs
- 停止JN:
hadoop-daemon.sh stop journalnode
- 调整软链接指向高版本:
ln -snf hadoop-3.4.1 hadoop
- 启动JN:
hadoop-daemon.sh start journalnode
- 停止JN:
-
滚动式重启NNs、ZKFCs(NN2为standby)
- 停止NN2:
hadoop-daemon.sh stop namenode
- 调整软链接指向高版本:
ln -snf hadoop-3.4.1 hadoop
- 滚动升级式启动NN2:
hdfs namenode -rollingUpgrade started
- 停止ZKFC2:
hadoop-daemon.sh stop zkfc
- 启动ZKFC2:
hadoop-daemon.sh start zkfc
- 切换NN:
hdfs haadmin -failover nn1 nn2
- 停止NN1:
hadoop-daemon.sh stop namenode
- 调整软链接指向高版本:
ln -snf hadoop-3.4.1 hadoop
- 滚动升级式启动NN1:
hdfs namenode -bootstrapStandby
- 停止ZKFC1:
hadoop-daemon.sh stop zkfc
- 启动ZKFC1:
hadoop-daemon.sh start zkfc
- 停止NN2:
-
滚动式重启DNs
- 滚动式停止DN:
hdfs dfsadmin -shutdownDatanode <DATANODE_HOST:IPC_PORT> upgrade
hdfs dfsadmin -getDatanodeInfo <DATANODE_HOST:IPC_PORT>
- 调整软链接指向高版本:
ln -snf hadoop-3.4.1 hadoop
- 启动DN:
hadoop-daemon.sh start datanode
- 滚动式停止DN:
-
结束滚动升级
hdfs dfsadmin -rollingUpgrade finalize
降级
只能在滚动升级开始后、升级终止前进行。恢复到升级前的版本,数据无法恢复到升级前的状态(数据无法还原)。
由3.4降级到2.8,NN会发生元数据不兼容异常(incompatible stringtable)。
社区HDFS-14831
降级步骤
- 降级DNs
- 降级NNs、ZKFCs
- 降级JNs
- 结束升级流程
核心步骤命令
-
滚动式降级DN
- 滚动升级式执行关闭DN:
hdfs dfsadmin -shutdownDatanode <DATANODE_HOST:IPC_PORT> upgrade
- 查询DN已经停止:
hdfs dfsadmin -getDatanodeInfo <DATANODE_HOST:IPC_PORT>
- 调整软链接指向低版本:
ln -snf hadoop-2.8.2 hadoop
- 启动DN:
hadoop-daemon.sh start datanode
- 滚动升级式执行关闭DN:
-
滚动式降级重启NNs、ZKFCs(NN2为standby)
- 停止NN2:
hadoop-daemon.sh stop namenode
- 调整软链接指向低版本:
ln -snf hadoop-2.8.2 hadoop
- 滚动升级式启动NN2:
hadoop-daemon.sh start namenode
- 停止ZKFC2:
hadoop-daemon.sh stop zkfc
- 启动ZKFC2:
hadoop-daemon.sh start zkfc
- 切换NN:
hdfs haadmin -failover nn1 nn2
- 停止NN1:
hadoop-daemon.sh stop namenode
- 调整软链接指向低版本:
ln -snf hadoop-2.8.2 hadoop
- 滚动升级式启动NN1:
hadoop-daemon.sh start namenode
- 停止ZKFC1:
hadoop-daemon.sh stop zkfc
- 启动ZKFC1:
hadoop-daemon.sh start zkfc
- 停止NN2:
-
滚动降级重启JNs
- 停止JN:
hadoop-daemon.sh stop journalnode
- 启动JN:
hadoop-daemon.sh start journalnode
- 停止JN:
-
结束滚动升级
hdfs dfsadmin -rollingUpgrade finalize
验证内容
- 升级过程中个角色是否可以启动
- 分步骤进行低版本(2.8.3)客户端读、写高版本集群
- 日志汇总异常信息分析
遗留疑问
- 升级Router的时候,需要升级Zookeeper到3.8.4版本
联合集群部署架构