在 Linux 上更新 Hadoop 版本,通常不建议直接“原地升级”,而是采用新版本并行安装 + 迁移配置/数据的方式,更安全、可控。下面我按通用流程 + 常见场景给你详细说明。
hadoop version
# 配置目录
cp -r $HADOOP_HOME/etc/hadoop /backup/hadoop-conf-$(date +%F)
# NameNode 元数据(非常重要)
cp -r $HADOOP_HOME/dfs/name /backup/dfs-name-$(date +%F)
hdfs dfsadmin -report
yarn node -list
✅ 确保没有异常节点、没有损坏块
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/
export HADOOP_NEW=/opt/hadoop-3.3.6
复制旧配置(不要直接覆盖):
cp -r /opt/hadoop-3.2.1/etc/hadoop/* $HADOOP_NEW/etc/hadoop/
⚠️ 注意:
core-site.xmlhdfs-site.xmlyarn-site.xmlworkers(或 slaves)$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/sbin/stop-yarn.sh
$HADOOP_NEW/bin/hdfs --daemon start namenode -upgrade
或:
$HADOOP_NEW/sbin/start-dfs.sh
Hadoop 会自动检测并执行升级
hdfs dfsadmin -upgradeProgress status
✅ 若无报错,说明升级成功
$HADOOP_NEW/sbin/start-yarn.sh
验证:
yarn node -list
vim ~/.bashrc
export HADOOP_HOME=/opt/hadoop-3.3.6
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source ~/.bashrc
hadoop version
如果升级失败,可回滚:
$HADOOP_NEW/bin/hdfs namenode -rollback
⚠️ 回滚只能在新版本启动后、尚未 finalize 前执行
确认一切正常后:
hdfs dfsadmin -finalizeUpgrade
✅ 此后无法回滚
| 场景 | 注意事项 |
|---|---|
| Hadoop 2 → 3 | 配置参数变化大,需重点检查 |
| HDFS 升级 | 必须备份 NameNode 元数据 |
| HA 集群 | 先升级 Standby NameNode |
| 使用 Hive / HBase | 需同步升级兼容版本 |
| Java 版本 | Hadoop 3 需要 Java 8+ |
备份
→ 下载新版本
→ 复制配置
→ 停止旧集群
→ 启动新版本 HDFS(upgrade)
→ 启动 YARN
→ 验证
→ finalize
如果你愿意,可以告诉我:
我可以给你更精确的升级方案 ✅