在 CentOS 上升级 HDFS(Hadoop HDFS),通常不是单独升级 HDFS,而是升级整个 Hadoop 集群。下面按生产环境常见做法给你一个完整、可操作的升级流程说明。
hadoop version
hdfs version
| 场景 | 建议方式 |
|---|---|
| 小版本升级(如 3.2 → 3.3) | 滚动升级(Rolling Upgrade) |
| 大版本升级(如 2.x → 3.x) | 停机升级(更安全) |
| 生产环境 | 强烈建议先测试 |
# 停止 HDFS
stop-dfs.sh
# 备份 NameNode 目录
cp -r /data/hadoop/dfs/name /data/hadoop/dfs/name.bak
cp -r $HADOOP_HOME/etc/hadoop /backup/hadoop-conf-$(date +%F)
hdfs fsck / -files -blocks -locations
hdfs dfsadmin -safemode leave
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz -C /opt/
vim /etc/profile
export HADOOP_HOME=/opt/hadoop-3.3.6
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc/profile
⚠️ 不要直接覆盖新版本配置
正确做法:
cp /backup/hadoop-conf-*/core-site.xml $HADOOP_HOME/etc/hadoop/
cp /backup/hadoop-conf-*/hdfs-site.xml $HADOOP_HOME/etc/hadoop/
cp /backup/hadoop-conf-*/yarn-site.xml $HADOOP_HOME/etc/hadoop/
cp /backup/hadoop-conf-*/mapred-site.xml $HADOOP_HOME/etc/hadoop/
检查:
vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
hdfs dfsadmin -rollingUpgrade prepare
查看状态:
hdfs dfsadmin -rollingUpgrade query
# 停止一个 DN
hadoop-daemon.sh stop datanode
# 启动新版本 DN
hadoop-daemon.sh start datanode
# 升级 Standby NN
hadoop-daemon.sh stop namenode
hadoop-daemon.sh start namenode
# 切换 Active
hdfs haadmin -failover nn1 nn2
hdfs dfsadmin -rollingUpgrade finalize
stop-dfs.sh
# 替换 Hadoop 目录
mv /opt/hadoop /opt/hadoop-old
ln -s /opt/hadoop-3.3.6 /opt/hadoop
# 启动 HDFS
start-dfs.sh
hdfs version
hdfs dfsadmin -report
hdfs fsck / -files -blocks
hdfs dfs -ls /
stop-dfs.sh
# 恢复 Hadoop 目录和元数据
start-dfs.sh
或:
hdfs dfsadmin -rollingUpgrade rollback
✅ Java 版本
java -version
✅ SELinux
setenforce 0
✅ 防火墙
systemctl stop firewalld
CentOS 上升级 HDFS = 升级 Hadoop + 备份元数据 + 滚动或停机升级 + 验证集群健康
如果你愿意,可以告诉我:
我可以给你一份完全针对你环境的升级方案。