温馨提示×

Linux中HDFS如何升级

小樊
43
2025-12-06 17:21:50
栏目: 智能运维

Linux中HDFS升级指南

一 升级方式与前置检查

  • 方式选择
    • 优先选择滚动升级 Rolling Upgrade,可在不停机或少停机前提下完成升级;DataNode支持逐个滚动升级,NameNodeHA场景下支持滚动升级,非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 preparequery,等待“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 UINameNode/DataNode日志无异常;在联邦场景下,需对每个命名空间分别完成升级与验证。
  • 常见问题与建议
    • 升级失败或异常时,优先在测试环境复现;确认是否满足滚动升级前提(如布局版本未变);严格按先 DataNode 后 NameNode的顺序执行;升级窗口内保持监控与回滚预案就绪。
  • 重要提示
    • 升级存在数据与服务可用性风险,务必在充分备份与演练后实施;本文为通用流程,请以目标版本的官方文档为准并结合实际环境调整。

0