温馨提示×

linux hdfs怎么升级

小樊
39
2026-10-01 15:07:22
栏目: 智能运维

在 Linux 环境下升级 HDFS(Hadoop HDFS),通常是 Hadoop 集群整体升级的一部分。下面按常见、稳妥的方式说明,适用于 Apache Hadoop(CDH / HDP 也类似,但工具有差异)。


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

1. 确认当前版本

hadoop version
hdfs version

2. 查看兼容性

  • 查看目标 Hadoop 版本的 Release Notes
  • 确认:
    • Java 版本是否支持
    • HDFS 元数据格式是否兼容
    • 是否跨 Major 版本(如 2.x → 3.x)

⚠️ 跨大版本(2→3)必须做滚动升级或停机升级


3. 备份元数据(必须)

# 停止 HDFS
stop-dfs.sh

# 备份 NameNode 元数据
cp -r $HADOOP_HOME/data/dfs/name /backup/name-$(date +%F)

4. 备份配置文件

cp -r $HADOOP_HOME/etc/hadoop /backup/hadoop-conf-$(date +%F)

二、升级方式选择

✅ 方式一:滚动升级(推荐,3.x 支持)

适用于 不停机升级

# 1. 升级 NameNode
hdfs dfsadmin -rollingUpgrade prepare

# 2. 逐个升级 DataNode
# 停止一个 DataNode → 替换包 → 启动

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

✅ 方式二:停机升级(最简单)

1. 停止集群

stop-dfs.sh

2. 替换 Hadoop 安装包

mv hadoop-3.x.x /opt/
ln -s /opt/hadoop-3.x.x $HADOOP_HOME

3. 合并配置文件

cp /backup/hadoop-conf-*/core-site.xml $HADOOP_HOME/etc/hadoop/
cp /backup/hadoop-conf-*/hdfs-site.xml $HADOOP_HOME/etc/hadoop/

4. 升级元数据

hdfs namenode -upgrade

5. 启动 HDFS

start-dfs.sh

三、升级后检查

hdfs dfsadmin -report
hdfs fsck /

查看日志:

tail -f $HADOOP_HOME/logs/hadoop-*-namenode-*.log

四、回滚(如果失败)

滚动升级回滚

hdfs dfsadmin -rollingUpgrade rollback

停机升级回滚

# 停止集群
stop-dfs.sh

# 恢复旧版本和元数据
mv hadoop-old $HADOOP_HOME
hdfs namenode -rollback

五、常见坑

问题 说明
Java 版本不对 Hadoop 3.x 需要 Java 8+
权限问题 不要混用 root / hadoop 用户
配置文件遗漏 workers、hadoop-env.sh
跨大版本 必须测试升级流程

六、你是哪种情况?

你可以告诉我:

  • Hadoop 当前版本(如 2.7 / 3.1 / 3.3)
  • 目标版本
  • 是否生产环境
  • 是否用 CDH / HDP

我可以给你精确到命令的升级方案。

0 踩