HDFS版本升级如何进行

436
2025/4/13 21:32:55
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

HDFS(Hadoop Distributed File System)的版本升级可以通过多种方式进行,主要包括滚动升级和有停机时间的升级。以下是详细的步骤和建议:

滚动升级步骤

  1. 准备滚动升级

    • 运行 hdfs dfsadmin -rollingUpgrade prepare 为滚动创建一个fsimage。
    • 运行 hdfs dfsadmin -rollingUpgrade query 检查回滚image的状态,等待并重新运行这个命令,直到出现“Proceed with rolling upgrade”。
  2. 升级NameNodes和DataNodes

    • 对于HA(High Availability)集群:
      1. 关闭并升级Standby NameNode。
      2. 将Active NameNode故障转移到Standby NameNode,使其成为新的Active NameNode。
      3. 关闭并升级原来的Active NameNode。
      4. 使用 -rollingUpgrade started 选项将原来的Active NameNode作为Standby启动。
    • 对于非HA集群:
      1. 停止Secondary NameNode(SNN)。
      2. 停止并升级NameNode。
      3. 使用 -rollingUpgrade started 选项启动NameNode。
      4. 升级并重启Secondary NameNode。
  3. 升级DataNodes

    • 选择一小部分DataNodes子集(例如在一个机架中的DataNodes)。
    • 运行 hdfs dfsadmin -shutdownDatanode <DATANODE_HOST:IPC_PORT> upgrade 命令来关闭这些DataNode。
    • 运行 hdfs dfsadmin -getDatanodeInfo <DATANODE_HOST:IPC_PORT> 来检查,并等到DataNode停止。
    • 升级和重启DataNode。
    • 在平行的子集上的DataNode执行以上所有的步骤。
    • 重复以上步骤直到集群中的所有DataNode都被升级。
  4. 完成滚动升级

    • 运行 hdfs dfsadmin -rollingUpgrade finalize 来完成滚动升级。

有停机时间的升级步骤

对于非HA集群,不可能不停机来进行升级,因为需要重启NameNodes。但是DataNodes仍然可以以滚动的方式升级:

  1. 停止Secondary NameNode(SNN)
  2. 停止并升级NameNode
  3. 使用 -rollingUpgrade started 选项启动NameNode
  4. 升级并重启Secondary NameNode

降级和回滚

  • 降级:可以将软件重建到升级之前的版本,并保持用户数据。降级可以以滚动的方式进行,但是回滚不行。
  • 回滚:需要集群停机,并且回滚需要集群停机。回滚只能在滚动升级被启动和升级被终止之前进行。

在进行版本升级之前,建议详细阅读相关版本的发布说明,了解新版本中的新特性、不兼容的更改以及可能的bug。此外,确保在测试环境中进行充分的测试验证,以避免生产环境中的问题。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: 创建安全的Linux服务器环境:掌握这些命令