温馨提示×

linux hadoop如何升级

小樊
51
2026-08-13 13:45:02
栏目: 智能运维

在 Linux 上升级 Hadoop,通常分为 “同版本系列升级(如 3.2 → 3.3)”“跨大版本升级(如 2.x → 3.x)” 两种情况。下面给你一套通用、稳妥的升级流程,适用于生产环境。


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

1. 查看当前 Hadoop 版本

hadoop version

2. 确认集群状态

hdfs dfsadmin -report
yarn node -list

✅ 确保:

  • HDFS 无损坏
  • 没有失败节点
  • 没有正在运行的重要作业

3. 备份关键数据(强烈建议)

# 备份配置
cp -r $HADOOP_HOME/etc/hadoop /backup/hadoop-conf-$(date +%F)

# 备份 NameNode 元数据和 JournalNode(如有)
# 停止集群后再备份

4. 查看官方升级说明(必读)

  • Hadoop 3.x:https://hadoop.apache.org/docs/
  • 注意 不兼容变更(Incompatible changes)

二、下载新版本 Hadoop

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/

三、停止 Hadoop 集群

# 停止 HDFS
$HADOOP_HOME/sbin/stop-dfs.sh

# 停止 YARN
$HADOOP_HOME/sbin/stop-yarn.sh

四、替换 Hadoop 目录(推荐方式)

1. 保留旧版本(安全)

mv /opt/hadoop /opt/hadoop_old
mv /opt/hadoop-3.3.6 /opt/hadoop

2. 复制配置文件

cp -r /opt/hadoop_old/etc/hadoop/* /opt/hadoop/etc/hadoop/

⚠️ 注意:

  • 不要直接覆盖 hadoop-env.sh
  • 检查端口、路径是否有变化

五、升级 HDFS(关键步骤)

1. 启动 JournalNode(HA 集群)

hadoop-daemon.sh start journalnode

2. 升级 NameNode(非 HA)

hdfs namenode -upgrade

3. HA 集群升级 NameNode

# 在 active NameNode 上
hdfs namenode -upgrade

# 在 standby NameNode 上
hdfs namenode -bootstrapStandby

4. 启动 HDFS

$HADOOP_HOME/sbin/start-dfs.sh

5. 验证 HDFS

hdfs dfsadmin -report
hdfs fsck /

六、升级 YARN

$HADOOP_HOME/sbin/start-yarn.sh

验证:

yarn node -list

七、Finalize 升级(确认无误后)

⚠️ 一旦 finalize,无法回滚

hdfs dfsadmin -finalizeUpgrade

八、回滚方案(出问题用)

# 停止集群
stop-dfs.sh

# 回滚
hdfs namenode -rollback

# 启动旧版本

九、常见问题

1. 权限问题

chown -R hadoop:hadoop /opt/hadoop

2. Java 版本不兼容

  • Hadoop 3.3.x ✅ Java 8 / 11
  • Hadoop 3.4.x ❌ 不再支持 Java 8

3. 配置文件变化

重点检查:

  • core-site.xml
  • hdfs-site.xml
  • yarn-site.xml

十、推荐升级策略(生产环境)

滚动升级(Rolling Upgrade)

hdfs dfsadmin -rollingUpgrade prepare

适合大集群,减少停机时间。


十一、总结流程(速查)

备份 → 停集群 → 替换 Hadoop → 升级 HDFS → 启动 → 验证 → finalize

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

  • 当前 Hadoop 版本
  • 是否 HA
  • 是否生产环境
  • Linux 发行版

我可以给你 精确的升级命令和注意事项

0