温馨提示×

Debian怎么升级Hadoop

小樊
39
2026-07-18 17:33:58
栏目: 智能运维

在 Debian 上升级 Hadoop,通常不建议直接用 apt,而是手动下载新版本并替换配置。下面给你一套稳妥、可回滚的升级流程(适用于 Hadoop 2.x → 3.x 或同大版本升级)。


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

1. 确认当前 Hadoop 版本

hadoop version

2. 备份配置和数据

cp -r $HADOOP_HOME /opt/hadoop_backup_$(date +%F)
cp -r /etc/hadoop /etc/hadoop_backup_$(date +%F)

3. 备份元数据(NameNode 特别重要)

# NameNode 元数据
cp -r /path/to/dfs/name /path/to/dfs/name_backup

# 如果启用了 HA,还要备份 JournalNode

4. 停止 Hadoop 集群

$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/sbin/stop-yarn.sh

二、下载并安装新版本 Hadoop

1. 下载新版本

到 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

2. 解压到 /opt

tar -xzf hadoop-3.3.6.tar.gz -C /opt

3. 设置软链接(便于升级)

ln -sfn /opt/hadoop-3.3.6 /opt/hadoop

三、迁移配置文件(不要直接覆盖)

推荐做法

  1. 保留新版本的默认配置
  2. 只复制你的自定义配置
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.defaultFS
  • dfs.namenode.name.dir
  • dfs.datanode.data.dir
  • yarn.resourcemanager.hostname

四、处理 Hadoop 3.x 的兼容性问题(重要)

1. 目录结构变化

Hadoop 3 中:

  • sbin 中脚本仍是主要脚本
  • 推荐使用绝对路径

2. 用户权限问题

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 元数据(关键步骤)

1. 启动 NameNode 升级模式

hdfs namenode -upgrade

⚠️ 这一步会修改 NameNode 元数据

2. 依次启动集群

/opt/hadoop/sbin/start-dfs.sh
/opt/hadoop/sbin/start-yarn.sh

3. 检查 HDFS 状态

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

八、Debian 常见坑

问题 解决
Java 版本不兼容 Hadoop 3.x 推荐 Java 8 / 11
端口冲突 检查 9870 / 8088
systemd 启动失败 用官方脚本,不要强用 apt

九、总结(推荐升级顺序)

  1. 备份
  2. 停集群
  3. 解压新 Hadoop
  4. 迁移配置
  5. hdfs namenode -upgrade
  6. 启动并验证
  7. 观察稳定后 finalizeUpgrade

如果你愿意,可以告诉我:

  • 当前 Hadoop 版本
  • 是否 HA
  • 是否用 Debian apt 安装的

我可以给你精确到命令的升级方案

0