温馨提示×

HDFS在CentOS上如何进行版本升级

小樊
38
2025-11-30 02:22:39
栏目: 智能运维

升级总览与策略选择

  • CentOS 上升级 HDFS 通常有两种方式:
    1. 滚动升级(HA 集群推荐):业务几乎不中断,逐组件升级并校验。
    2. 停机升级(非 HA 或无法滚动时使用):统一停服、升级、再启动。
  • 升级前务必完成:
    • 完整备份(如 NameNode 元数据目录、JournalNode 数据、关键配置 等)。
    • 核对版本兼容性与变更说明,先在测试环境演练。
    • 规划回滚路径与回滚窗口,准备监控与告警。

升级前准备

  • 检查集群状态与版本:
    • 查看 HDFS 状态:hdfs dfsadmin -report
    • 查看 Hadoop 版本:hadoop version
  • 备份与一致性:
    • 进入安全模式并保存命名空间:hdfs dfsadmin -safemode enterhdfs dfsadmin -saveNamespace
    • 备份元数据目录(如 dfs.namenode.name.dir 指向的路径)与 JournalNode 数据目录。
  • 配置与兼容性:
    • 复核 core-site.xml、hdfs-site.xml、hadoop-env.sh 等关键配置;确保 JAVA_HOME 与新版本一致。
    • 确认与 YARN、HBase、Hive 等组件的版本兼容策略。
  • 资源与窗口:
    • 预留磁盘与内存,选择业务低峰期执行,完善监控与回滚预案。

滚动升级步骤(HA 推荐)

  • 准备阶段:
    • 执行:hdfs dfsadmin -rollingUpgrade prepare
    • 查询状态:hdfs dfsadmin -rollingUpgrade query,直至出现 “Proceed with rolling upgrade”
  • 升级 NameNode:
    • 依次升级 Standby NN → 切换 Active/Standby → 升级原 Active NN → 再次切换,确保每一步健康后再继续。
  • 升级 DataNode:
    • 按批次(如按机架)逐台停机、升级、启动并确认 VersionBlock Report 正常,再推进下一批。
  • 完成阶段:
    • 全部节点升级并验证后,执行:hdfs dfsadmin -rollingUpgrade finalize,提交升级。
  • 联邦集群(HA + Federation):对每个 命名空间 分别执行上述流程。

停机升级步骤(非 HA 或无法滚动)

  • 停止服务:
    • 依次停止 SecondaryNameNode(如有)与 NameNode、DataNode(示例:sudo systemctl stop hadoop-hdfs-namenodesudo systemctl stop hadoop-hdfs-datanode)。
  • 执行升级:
    • 启动新版本后,在 NameNode 上执行:hdfs namenode -upgrade,等待升级流程完成。
  • 启动与验证:
    • 启动 NameNode/DataNode,使用 hdfs dfsadmin -reportjps 校验进程与集群健康。
  • 提交升级:
    • 确认无误后执行:hdfs namenode -finalize;如需回滚,在未 finalize 前使用 hdfs namenode -rollback

回滚与验证及注意事项

  • 回滚策略:
    • 滚动升级未提交前可回滚;停机升级在未执行 -finalize 前可用 -rollback 回到升级前状态。
    • 回滚后按流程重启并复核数据一致性与服务健康。
  • 验证要点:
    • 进程:jps 检查 NameNode/DataNode 等进程是否存在。
    • 集群:hdfs dfsadmin -report 检查容量、节点数、块报告与健康状态。
    • 业务:抽样读写路径、关键作业回归。
  • 关键注意事项:
    • 严格把控版本兼容与配置变更;升级期间密切监控 磁盘、内存、网络GC/延迟
    • 先小流量或测试环境演练,再在生产环境执行;保留完整备份与回滚窗口。

0