温馨提示×

centos怎么升级hdfs

小樊
42
2026-08-05 03:52:47
栏目: 智能运维

CentOS 上升级 HDFS,本质上就是升级 Hadoop 的版本。HDFS 是 Hadoop 的一部分,不能单独升级。下面我按生产环境常见做法给你一个完整、清晰的升级流程(从低版本 Hadoop 升级到高版本),并标注注意事项。


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

1. 确认当前 Hadoop / HDFS 版本

hadoop version
hdfs version

2. 确认 HDFS 状态

hdfs dfsadmin -report
hdfs fsck / -files -blocks -locations

✅ 确保:

  • 没有损坏块
  • 集群健康
  • NameNode 和 DataNode 都正常

3. 备份关键数据(强烈建议)

(1)备份 NameNode 元数据

cp -r ${HADOOP_HOME}/dfs/name /backup/name-$(date +%F)

如果你用的是 HA:

# 两个 NameNode 都要备份

(2)备份配置文件

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

(3)备份 HDFS 数据(可选)

  • 小集群:直接 distcp 到新集群
  • 大集群:至少保证 副本数 ≥ 2

二、升级方式选择

升级方式 适用场景
Rolling Upgrade(滚动升级) 生产环境、HA 集群
Full Stop Upgrade(停机升级) 测试环境、非 HA

下面分别说明。


三、滚动升级 HDFS(推荐,HA 集群)

1. 下载新版本 Hadoop

wget https://downloads.apache.org/hadoop/common/hadoop-3.x.x/hadoop-3.x.x.tar.gz
tar -zxvf hadoop-3.x.x.tar.gz -C /opt/

2. 同步配置文件

把旧配置复制到新版本:

cp -r /opt/hadoop-2.x/etc/hadoop/* /opt/hadoop-3.x/etc/hadoop/

⚠️ 注意:

  • 新版本可能有 废弃或新增参数
  • 检查 hdfs-site.xmlcore-site.xml

3. 升级 NameNode(HA)

(1)以 Rolling Upgrade 模式启动

Active NameNode 上:

hdfs dfsadmin -rollingUpgrade prepare

确认:

hdfs dfsadmin -rollingUpgrade query

(2)逐个升级 NameNode

  1. 停止 Standby NN
  2. 使用新版本启动
  3. 等它同步完成
  4. 再升级 Active NN(切换后)

4. 升级 DataNode(滚动)

逐个节点执行:

# 停止旧 DataNode
systemctl stop hadoop-datanode

# 用新版本启动
/opt/hadoop-3.x/sbin/hadoop-daemon.sh start datanode

✅ 集群始终保持可用


5. 完成 Rolling Upgrade

所有节点升级完成后:

hdfs dfsadmin -rollingUpgrade finalize

四、停机升级 HDFS(非 HA)

1. 停止集群

stop-dfs.sh

2. 替换 Hadoop 目录

mv /opt/hadoop /opt/hadoop-old
mv /opt/hadoop-3.x /opt/hadoop

3. 启动集群

start-dfs.sh

4. 升级元数据(如需要)

Hadoop 会自动升级,或手动:

hdfs namenode -upgrade

完成后再执行:

hdfs namenode -finalize

五、CentOS 常见注意事项

1. Java 版本

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

2. 防火墙 & SELinux

systemctl stop firewalld
setenforce 0

3. 用户权限

确保 HDFS 数据目录权限正确:

chown -R hdfs:hdfs /data/hdfs

六、升级失败回滚

Rolling Upgrade 回滚

hdfs dfsadmin -rollingUpgrade rollback

停机升级回滚

hdfs namenode -rollback

七、升级后验证

hdfs dfsadmin -report
hdfs fsck /
hadoop version

八、我可以继续帮你

你可以直接告诉我:

  1. 当前 Hadoop 版本
  2. 目标版本
  3. 是否 HA
  4. CentOS 版本

我可以给你 精确到命令级别的升级方案(比如 2.7 → 3.3,或 CDH / HDP 升级)。

0