Ubuntu HDFS版本升级流程是什么
导读:Ubuntu 上 HDFS 版本升级流程 一 升级方式与前置准备 升级方式 滚动升级(Rolling Upgrade):适用于 Hadoop 2.x → 3.x 及更高版本,支持在 HA 或 非 HA 集群中逐个节点升级,尽量做到业务不...
Ubuntu 上 HDFS 版本升级流程
一 升级方式与前置准备
- 升级方式
- 滚动升级(Rolling Upgrade):适用于 Hadoop 2.x → 3.x 及更高版本,支持在 HA 或 非 HA 集群中逐个节点升级,尽量做到业务不停机。核心命令包括:hdfs dfsadmin -rollingUpgrade prepare/query/start/finalize。
- 停机升级:适用于无法滚动升级的场景(如老版本或非 HA),需短暂停机,按序重启 NameNode/DataNode。
- 前置检查
- 完整备份关键数据与配置:包括 dfs.namenode.name.dir 元数据目录、重要配置文件(如 core-site.xml、hdfs-site.xml、yarn-site.xml 等)。
- 版本与兼容性核对:阅读目标版本的发行说明,确认 OS、JDK、依赖库、HDFS 布局/特性 的兼容性。
- 测试验证:在测试环境演练全流程,覆盖升级、回滚、故障定位。
- 规划窗口与回滚方案:明确升级窗口、监控告警、回滚触发条件与步骤。
- 配置重点复查:如 fs.defaultFS、dfs.replication、dfs.namenode.name.dir 等关键参数在新版本中的有效性。
二 滚动升级步骤(HA 与非 HA)
- 准备阶段
- 在 Standby NameNode 执行:
hdfs dfsadmin -rollingUpgrade prepare - 查询状态:
hdfs dfsadmin -rollingUpgrade query,等待返回 “Proceed with rolling upgrade”。
- 在 Standby NameNode 执行:
- 升级 NameNode
- HA 集群
- 先升级 Standby NameNode;
- 执行故障转移,使原 Active 变为 Standby;
- 升级原 Active NameNode;
- 以 -rollingUpgrade started 选项将其作为 Standby 启动;
- 视需要再次切换,使新 Active 处于健康状态。
- 非 HA 集群
- 停止并升级 Secondary NameNode(SNN);
- 停止并升级 NameNode;
- 启动时带上 -rollingUpgrade started 选项;
- 升级并重启 SNN。
- HA 集群
- 升级 DataNode
- 按“机架/机柜/子集”分批进行,逐台操作:
- 关闭 DataNode 并触发升级:
hdfs dfsadmin -shutdownDatanode < datanode_host> :< ipc_port> upgrade - 等待停止完成:
hdfs dfsadmin -getDatanodeInfo < datanode_host> :< ipc_port> - 启动新版本 DataNode:
hdfs --daemon start datanode(或对应脚本)
- 关闭 DataNode 并触发升级:
- 重复分批直至全集群升级完成。
- 按“机架/机柜/子集”分批进行,逐台操作:
- 完成升级
- 全量验证通过后执行:
hdfs dfsadmin -rollingUpgrade finalize(不可逆,清理旧版本元数据)。
- 全量验证通过后执行:
三 停机升级步骤(无法滚动升级时)
- 停止集群:
$HADOOP_HOME/sbin/stop-dfs.sh - 备份与替换
- 备份旧配置与元数据:
cp -r $HADOOP_HOME/conf $HADOOP_HOME/conf.old,备份 dfs.namenode.name.dir; - 解压新版本至目标目录并更新 HADOOP_HOME 环境变量。
- 备份旧配置与元数据:
- 启动与升级
- 启动 NameNode 并执行升级:
$HADOOP_HOME/bin/hdfs namenode -upgrade - 监控升级进度:
hdfs dfsadmin -upgradeProgress status/details - 启动 DataNode:
$HADOOP_HOME/sbin/start-dfs.sh
- 启动 NameNode 并执行升级:
- 验证与收尾
- 运行
hdfs dfsadmin -report与 NameNode Web UI(默认 9870 端口) 检查状态; - 业务验证通过后执行:
hdfs dfsadmin -finalizeUpgrade清理旧版本备份。
- 运行
四 验证与回滚
- 验证要点
- 进程与 UI:用
jps确认 NameNode/DataNode/ResourceManager/NodeManager 运行;访问 http://< namenode_host> :9870 查看集群与健康状态; - 集群报告:
hdfs dfsadmin -report检查容量、节点数、块数等; - 功能回归:执行
hadoop fs -put、hadoop jar hadoop-mapreduce-examples.jar wordcount等基础作业验证读写与计算链路。
- 进程与 UI:用
- 回滚与降级
- 滚动升级中回滚(未执行 finalize):
- 停止集群;
- 执行:
hdfs dfsadmin -rollingUpgrade rollback; - 使用旧版本二进制与配置重启集群。
- 停机升级回滚(升级后未 finalize):
- 停止集群;
- 执行:
hdfs namenode -rollback; - 使用旧版本重启 NameNode/DataNode。
- 重要限制:finalize 后不可回滚;降级通常可在不丢用户数据的前提下进行,但回滚需停机且必须在滚动升级开始后、未完成 finalize 前执行。
- 滚动升级中回滚(未执行 finalize):
五 关键注意事项
- 配置与兼容性
- 新版本可能引入 配置项变更/废弃 与 HDFS 布局变化,务必逐项核对 core-site.xml、hdfs-site.xml 等;
- 升级前在测试环境验证所有关键业务链路与参数生效。
- 联邦集群
- 对 每个命名空间 分别执行滚动升级的 prepare/start/finalize 流程。
- 操作规范
- 全程关注 $HADOOP_HOME/logs 日志与监控告警;
- 分批滚动时控制并发度,避免一次性升级过多节点;
- 明确 finalize 的风险(不可逆),建议在充分观察后再执行。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu HDFS版本升级流程是什么
本文地址: https://pptw.com/jishu/748677.html
