温馨提示×

centos如何升级hdfs

小樊
44
2026-08-20 05:42:30
栏目: 智能运维

CentOS 上升级 HDFS(Hadoop HDFS),通常不是单独升级 HDFS,而是升级整个 Hadoop 集群。下面按生产环境常见做法给你一个完整、可操作的升级流程说明。


一、升级前必须确认的事项

1️⃣ 确认当前 Hadoop 版本

hadoop version

2️⃣ 确认 HDFS 版本(一般与 Hadoop 一致)

hdfs version

3️⃣ 查看当前集群模式

  • HA(高可用)
  • 非 HA
  • 是否使用 JournalNode / ZooKeeper

二、升级方式选择

场景 建议方式
小版本升级(如 3.2 → 3.3) 滚动升级(Rolling Upgrade)
大版本升级(如 2.x → 3.x) 停机升级(更安全)
生产环境 强烈建议先测试

三、升级前准备工作(非常重要)

✅ 1. 备份 NameNode 元数据

# 停止 HDFS
stop-dfs.sh

# 备份 NameNode 目录
cp -r /data/hadoop/dfs/name /data/hadoop/dfs/name.bak

✅ 2. 备份配置文件

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

✅ 3. 确认 HDFS 健康状态

hdfs fsck / -files -blocks -locations

✅ 4. 关闭 HDFS 安全模式(如有)

hdfs dfsadmin -safemode leave

四、下载并安装新版本 Hadoop

1️⃣ 下载 Hadoop(示例)

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/

2️⃣ 配置环境变量

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(核心步骤)

✅ 方式一:滚动升级(推荐 HA 集群)

1️⃣ 启动滚动升级

hdfs dfsadmin -rollingUpgrade prepare

查看状态:

hdfs dfsadmin -rollingUpgrade query

2️⃣ 逐个升级 DataNode

# 停止一个 DN
hadoop-daemon.sh stop datanode

# 启动新版本 DN
hadoop-daemon.sh start datanode

3️⃣ 升级 NameNode(先 Standby,再 Active)

# 升级 Standby NN
hadoop-daemon.sh stop namenode
hadoop-daemon.sh start namenode

# 切换 Active
hdfs haadmin -failover nn1 nn2

4️⃣ 完成滚动升级

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

七、升级后检查

1️⃣ 查看版本

hdfs version

2️⃣ 检查 HDFS 状态

hdfs dfsadmin -report
hdfs fsck / -files -blocks

3️⃣ 确认 NameNode 是否正常

hdfs dfs -ls /

八、回滚方案(出问题用)

回滚到旧版本

stop-dfs.sh
# 恢复 Hadoop 目录和元数据
start-dfs.sh

或:

hdfs dfsadmin -rollingUpgrade rollback

九、常见坑(CentOS 特别)

Java 版本

  • Hadoop 3.x 需要 Java 8 或 11
java -version

SELinux

setenforce 0

防火墙

systemctl stop firewalld

十、总结一句话

CentOS 上升级 HDFS = 升级 Hadoop + 备份元数据 + 滚动或停机升级 + 验证集群健康


如果你愿意,可以告诉我:

  • ✅ 当前 Hadoop 版本
  • ✅ 是否 HA
  • ✅ 是测试还是生产环境

我可以给你一份完全针对你环境的升级方案

0