在 Debian 上升级 Hadoop,通常不建议直接用 apt,而是手动下载新版本并替换配置。下面给你一套稳妥、可回滚的升级流程(适用于 Hadoop 2.x → 3.x 或同大版本升级)。
hadoop version
cp -r $HADOOP_HOME /opt/hadoop_backup_$(date +%F)
cp -r /etc/hadoop /etc/hadoop_backup_$(date +%F)
# NameNode 元数据
cp -r /path/to/dfs/name /path/to/dfs/name_backup
# 如果启用了 HA,还要备份 JournalNode
$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/sbin/stop-yarn.sh
到 Apache Hadoop 官方镜像: https://downloads.apache.org/hadoop/common/
例如(Hadoop 3.x):
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzf hadoop-3.3.6.tar.gz -C /opt
ln -sfn /opt/hadoop-3.3.6 /opt/hadoop
cp /etc/hadoop_backup/core-site.xml /opt/hadoop/etc/hadoop/
cp /etc/hadoop_backup/hdfs-site.xml /opt/hadoop/etc/hadoop/
cp /etc/hadoop_backup/yarn-site.xml /opt/hadoop/etc/hadoop/
cp /etc/hadoop_backup/mapred-site.xml /opt/hadoop/etc/hadoop/
✅ 重点关注:
fs.defaultFSdfs.namenode.name.dirdfs.datanode.data.diryarn.resourcemanager.hostnameHadoop 3 中:
sbin 中脚本仍是主要脚本Hadoop 3 禁止 root 直接启动(除非配置)
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
或:
vi /opt/hadoop/etc/hadoop/hadoop-env.sh
hdfs namenode -upgrade
⚠️ 这一步会修改 NameNode 元数据
/opt/hadoop/sbin/start-dfs.sh
/opt/hadoop/sbin/start-yarn.sh
hdfs dfsadmin -report
hdfs fsck /
hadoop version
hdfs dfs -ls /
如果一切正常,运行一段时间后再执行:
hdfs namenode -finalizeUpgrade
⚠️ finalize 后无法回滚
如果升级失败:
/opt/hadoop/sbin/stop-dfs.sh
恢复旧版本:
ln -sfn /opt/hadoop_backup_2026-01-21 /opt/hadoop
恢复元数据:
mv /path/to/dfs/name /path/to/dfs/name_bad
cp -r /path/to/dfs/name_backup /path/to/dfs/name
| 问题 | 解决 |
|---|---|
| Java 版本不兼容 | Hadoop 3.x 推荐 Java 8 / 11 |
| 端口冲突 | 检查 9870 / 8088 |
| systemd 启动失败 | 用官方脚本,不要强用 apt |
hdfs namenode -upgradefinalizeUpgrade如果你愿意,可以告诉我:
我可以给你精确到命令的升级方案。