在 Linux 上升级 Hadoop 版本,通常不建议“原地覆盖升级”,而是采用 新版本并行安装 + 配置迁移 + 滚动切换 的方式,避免数据丢失和集群不可用。
下面按 常见生产做法 给你一个完整流程(以 Hadoop 3.x 为例,也适用于 2.x → 3.x)。
hadoop version
hdfs dfsadmin -report
yarn node -list
确保:
# HDFS 元数据
cp -r $HADOOP_HOME/etc/hadoop $BACKUP_DIR/hadoop-etc-$(date +%F)
# NameNode 元数据
cp -r $HADOOP_HOME/data/dfs/name $BACKUP_DIR/name-$(date +%F)
不同版本差异很大,例如:
官方文档:
https://hadoop.apache.org/docs/
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz -C /opt/
目录示例:
/opt/hadoop-3.3.6
/opt/hadoop-2.7.7 (旧版本保留)
cp -r /opt/hadoop-2.7.7/etc/hadoop/* /opt/hadoop-3.3.6/etc/hadoop/
常见需要调整的:
mapred-site.xmlyarn-site.xmlcore-site.xml例如 Hadoop 3 中:
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///opt/hadoop/data/dfs/name</value>
</property>
⚠️ 不要直接删旧配置,先 diff
diff /opt/hadoop-2.7.7/etc/hadoop/hdfs-site.xml \
/opt/hadoop-3.3.6/etc/hadoop/hdfs-site.xml
stop-dfs.sh
stop-yarn.sh
/opt/hadoop-3.3.6/bin/hdfs namenode -upgrade
/opt/hadoop-3.3.6/sbin/start-dfs.sh
hdfs dfsadmin -upgradeProgress status
/opt/hadoop-3.3.6/sbin/start-yarn.sh
检查:
yarn node -list
修改:
vi /etc/profile
或
vi ~/.bashrc
export HADOOP_HOME=/opt/hadoop-3.3.6
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc/profile
hadoop version
hdfs dfs -ls /
yarn application -list
/opt/hadoop-3.3.6/bin/hdfs namenode -rollback
✅ 先在 测试集群 升级
✅ 使用 滚动升级(Rolling Upgrade)(Hadoop 2.7+ 支持)
✅ 保留旧版本目录至少 1 个月
如果你愿意,可以告诉我:
我可以给你 更精确的升级命令。