温馨提示×

linux hdfs怎样升级

小樊
38
2026-10-16 06:35:33
栏目: 智能运维

在 Linux 上升级 HDFS(通常是 Hadoop 的一部分),需要根据你使用的是 Apache Hadoop 还是 发行版(如 CDH / HDP / CDP) 来区分。下面以 Apache Hadoop HDFS 升级为主说明,并补充常见发行版方式。


一、升级前准备(非常重要)

1. 备份元数据(NameNode)

# 停止 HDFS
stop-dfs.sh

# 备份 NameNode 目录
cp -r $HADOOP_HOME/data/dfs/name /backup/name_backup

2. 查看当前版本

hadoop version
hdfs version

3. 检查兼容性

  • 小版本升级(2.7 → 2.9):一般直接升级
  • 大版本升级(2.x → 3.x):
    • 需要 滚动升级(Rolling Upgrade)
    • HDFS 3.x 不再支持 YARN 1.x
    • 配置文件可能有变化

二、Apache Hadoop HDFS 升级方式

方式一:非滚动升级(停机升级)

适合测试环境或可接受停机时间

# 1. 停止 HDFS
stop-dfs.sh

# 2. 替换 Hadoop 安装目录
mv hadoop hadoop_old
tar -zxvf hadoop-3.x.tar.gz
ln -s hadoop-3.x hadoop

# 3. 修改配置文件
# 对比 core-site.xml / hdfs-site.xml

# 4. 升级 NameNode 元数据
hdfs namenode -upgrade

# 5. 启动 HDFS
start-dfs.sh

确认无误后:

hdfs namenode -finalizeUpgrade

方式二:滚动升级(生产推荐)

适合 HDFS 3.x

# 1. 启动滚动升级
hdfs dfsadmin -rollingUpgrade prepare

# 2. 逐个重启 DataNode
# 在每个 DN 上:
hadoop-daemon.sh stop datanode
hadoop-daemon.sh start datanode

# 3. 升级 NameNode
hdfs namenode -rollingUpgrade started

# 4. 重启 NameNode(先 Standby 后 Active)

# 5. 完成升级
hdfs dfsadmin -rollingUpgrade finalize

三、CDH / HDP / CDP 升级(推荐用官方工具)

CDH(Cloudera)

# 使用 Cloudera Manager
1. 备份数据库
2. 升级 CM
3. 升级 HDFS 服务
4. 执行 Finalize Upgrade

HDP(Ambari)

ambari-server upgrade
ambari-agent restart

四、常见问题

1. NameNode 无法启动

  • 检查 hdfs-site.xml
  • 查看 namenode.log
  • 确认未误删 VERSION 文件

2. 数据丢失风险

  • ❌ 不要直接删除 dfs/name
  • ✅ 一定要 -finalizeUpgrade 前确认无误

3. 回滚

hdfs namenode -rollback

五、升级建议

  • 先 小版本 → 大版本
  • 先在 测试集群验证
  • 升级前做 完整备份
  • 生产环境用 滚动升级

如果你能告诉我:

  • Hadoop 版本(如 2.7.3 / 3.3.6)
  • 是否是 CDH / HDP
  • 单节点还是集群

我可以给你 精确升级步骤。

0 踩