在 CentOS 上升级 HDFS(Hadoop HDFS)版本,通常不是“在线直接升级”,而是滚动升级(Rolling Upgrade)或新集群迁移。下面按常见且安全的方式说明。
hadoop version
或
hdfs version
重点看:
⚠️ Hadoop 2.x → 3.x 属于大版本升级,必须谨慎
# NameNode 上执行
hdfs dfsadmin -safemode enter
hdfs dfsadmin -saveNamespace
备份目录:
$HADOOP_HOME/data/dfs/name
✅ 适用于 Hadoop 2.4+ ✅ 不停集群
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzf hadoop-3.3.6.tar.gz -C /opt
cp $OLD_HADOOP/etc/hadoop/* $NEW_HADOOP/etc/hadoop/
在 Active NameNode 上:
hdfs dfsadmin -rollingUpgrade prepare
hdfs dfsadmin -rollingUpgrade query
# 停止旧 DataNode
$HADOOP_HOME/sbin/hadoop-daemon.sh stop datanode
# 使用新版本启动
$NEW_HADOOP/sbin/hadoop-daemon.sh start datanode
# 先升级 Standby NameNode
# 再切换 Active
hdfs haadmin -failover nn1 nn2
hdfs dfsadmin -rollingUpgrade finalize
stop-dfs.sh
mv /opt/hadoop /opt/hadoop_old
mv /opt/hadoop-3.3.6 /opt/hadoop
cp /opt/hadoop_old/etc/hadoop/* /opt/hadoop/etc/hadoop/
start-dfs.sh
distcp 迁移数据hadoop distcp hdfs://oldcluster/ hdfs://newcluster/
dfs.datanode.data.dirtail -200 $HADOOP_LOG_DIR/hadoop-hdfs-datanode-*.log
hdfs dfsadmin -rollingUpgrade rollback
(仅 Rolling Upgrade 未 finalize 前)
| 场景 | 推荐方式 |
|---|---|
| 生产环境 | Rolling Upgrade |
| 测试环境 | 停止升级 |
| 大版本跨越 | 新集群迁移 |
如果你能提供:
我可以给你精确升级步骤。