Linux中HDFS如何升级
小樊
43
2025-12-06 17:21:50
Linux中HDFS升级指南
一 升级方式与前置检查
- 方式选择
- 优先选择滚动升级 Rolling Upgrade,可在不停机或少停机前提下完成升级;DataNode支持逐个滚动升级,NameNode在HA场景下支持滚动升级,非HA场景需要短暂停机切换。升级期间可使用hdfs dfsadmin -rollingUpgrade query查看状态。
- 前置检查
- 核对版本兼容性与发行说明,确认JDK版本匹配(如Hadoop 3.x通常与JDK 8配套),并校验HADOOP_HOME/HADOOP_CONF_DIR/JAVA_HOME等环境变量。
- 做好配置与元数据备份:同步更新core-site.xml/hdfs-site.xml/hadoop-env.sh等配置到新版本目录,分发至所有节点;备份NameNode元数据目录(如dfs.namenode.name.dir)与关键配置。
- 在测试环境完整演练升级与回滚流程,确认业务读写、权限、配额、快照等特性正常。
二 滚动升级步骤 HA集群
- 准备阶段
- 执行hdfs dfsadmin -rollingUpgrade prepare创建回滚镜像;用hdfs dfsadmin -rollingUpgrade query等待状态变为“Proceed with rolling upgrade”。
- 升级 NameNode
- 按顺序升级Standby NN → Active NN:
- 关闭并升级Standby NN;
- 将Active NN故障切换到该 Standby;
- 关闭并升级原Active NN;
- 以**-rollingUpgrade started**选项启动原 Active 作为新的 Standby;
- 启动新的 Standby。
- 升级 DataNode
- 按批次滚动升级:
- 对一批DataNode执行hdfs dfsadmin -shutdownDatanode host:IPC_PORT upgrade关闭;
- 用**hdfs dfsadmin -getDatanodeInfo host:IPC_PORT**确认已停止;
- 升级并重启该批DataNode;
- 重复直至全集群DataNode升级完成。
- 完成升级
- 业务验证通过后,执行hdfs dfsadmin -rollingUpgrade finalize结束滚动升级。
三 滚动升级步骤 非HA集群
- 准备阶段
- 同样执行hdfs dfsadmin -rollingUpgrade prepare与query,等待“Proceed with rolling upgrade”。
- 升级 NameNode
- 非HA需短暂停机:
- 关闭并升级SecondaryNameNode(SNN);
- 关闭并升级NameNode;
- 以**-rollingUpgrade started选项启动NameNode**;
- 升级并重启SNN。
- 升级 DataNode
- 与HA相同,按批次滚动升级各DataNode并逐批验证。
- 完成升级
- 业务验证通过后,执行hdfs dfsadmin -rollingUpgrade finalize。
四 降级与回滚
- 关键区别
- 降级 Downgrade:将软件恢复到升级前版本,且保留用户数据;支持滚动执行;要求升级期间NameNode/DataNode 布局版本未变化;且必须先降级DataNode再降级NameNode(协议向后兼容)。
- 回滚 Rollback:将软件与用户数据一并恢复到升级前状态;不支持滚动,需要集群停机;只能在升级开始后、终止前执行(终止方式包括finalize/downgrade/rollback)。
- 常用命令
- 查询/准备/完成:hdfs dfsadmin -rollingUpgrade query|prepare|finalize
- 安全下线节点:hdfs dfsadmin -shutdownDatanode host:IPC_PORT upgrade
- 节点探活:hdfs dfsadmin -getDatanodeInfo host:IPC_PORT
- 回滚启动:hdfs namenode -rollingUpgrade rollback(全集群停机后执行)
五 验证与常见问题
- 升级后验证
- 使用hdfs dfsadmin -report查看集群健康与版本;抽样进行读写/删除/追加操作;核对Web UI与NameNode/DataNode日志无异常;在联邦场景下,需对每个命名空间分别完成升级与验证。
- 常见问题与建议
- 升级失败或异常时,优先在测试环境复现;确认是否满足滚动升级前提(如布局版本未变);严格按先 DataNode 后 NameNode的顺序执行;升级窗口内保持监控与回滚预案就绪。
- 重要提示
- 升级存在数据与服务可用性风险,务必在充分备份与演练后实施;本文为通用流程,请以目标版本的官方文档为准并结合实际环境调整。