温馨提示×

linux hadoop怎么升版本

小樊
36
2026-10-01 14:21:21
栏目: 智能运维

在 Linux 上升级 Hadoop 版本,通常不建议“原地覆盖升级”,而是采用 新版本并行安装 + 配置迁移 + 滚动切换 的方式,避免数据丢失和集群不可用。

下面按 常见生产做法 给你一个完整流程(以 Hadoop 3.x 为例,也适用于 2.x → 3.x)。


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

1. 确认当前版本

hadoop version

2. 查看集群状态

hdfs dfsadmin -report
yarn node -list

确保:

  • NameNode / ResourceManager 正常
  • 无失败任务
  • 磁盘空间充足

3. 备份关键数据(必须)

# 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)

4. 阅读官方升级说明

不同版本差异很大,例如:

  • Hadoop 2.7 → 3.x 有 不兼容变更
  • 配置文件名称可能变化

官方文档:

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  (旧版本保留)

三、迁移配置文件(重点)

1. 复制旧配置

cp -r /opt/hadoop-2.7.7/etc/hadoop/* /opt/hadoop-3.3.6/etc/hadoop/

2. 修改不兼容配置

常见需要调整的:

  • mapred-site.xml
  • yarn-site.xml
  • core-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

四、HDFS 升级(关键步骤)

1. 停止集群

stop-dfs.sh
stop-yarn.sh

2. 使用升级模式启动 NameNode

/opt/hadoop-3.3.6/bin/hdfs namenode -upgrade

3. 启动 HDFS

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

4. 查看升级状态

hdfs dfsadmin -upgradeProgress status

五、YARN 升级

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

检查:

yarn node -list

六、切换 Hadoop 环境变量

修改:

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 个月


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

  • 当前 Hadoop 版本
  • 单机 / 集群
  • 是否使用 CDH / HDP / 原生 Apache

我可以给你 更精确的升级命令。

0 踩