温馨提示×

centos如何升hdfs版本

小樊
43
2026-09-15 14:45:18
栏目: 智能运维

在 CentOS 上升级 HDFS(Hadoop HDFS)版本,通常不是“在线直接升级”,而是滚动升级(Rolling Upgrade)或新集群迁移。下面按常见且安全的方式说明。


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

1. 确认当前 Hadoop 版本

hadoop version

或

hdfs version

2. 查看发行说明(Release Notes)

重点看:

  • 是否支持 Rolling Upgrade
  • NameNode / DataNode 兼容性
  • 配置文件变化(core-site.xml、hdfs-site.xml)

⚠️ Hadoop 2.x → 3.x 属于大版本升级,必须谨慎

3. 备份元数据(必须)

# NameNode 上执行
hdfs dfsadmin -safemode enter
hdfs dfsadmin -saveNamespace

备份目录:

$HADOOP_HOME/data/dfs/name

二、推荐方式一:滚动升级(生产环境)

✅ 适用于 Hadoop 2.4+ ✅ 不停集群

1. 下载新版本 Hadoop

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzf hadoop-3.3.6.tar.gz -C /opt

2. 复制配置文件

cp $OLD_HADOOP/etc/hadoop/* $NEW_HADOOP/etc/hadoop/

3. 启动 Rolling Upgrade

在 Active NameNode 上:

hdfs dfsadmin -rollingUpgrade prepare
hdfs dfsadmin -rollingUpgrade query

4. 升级 DataNode(逐个)

# 停止旧 DataNode
$HADOOP_HOME/sbin/hadoop-daemon.sh stop datanode

# 使用新版本启动
$NEW_HADOOP/sbin/hadoop-daemon.sh start datanode

5. 升级 NameNode

# 先升级 Standby NameNode
# 再切换 Active
hdfs haadmin -failover nn1 nn2

6. 完成升级

hdfs dfsadmin -rollingUpgrade finalize

三、方式二:停止集群升级(简单但停机)

1. 停止集群

stop-dfs.sh

2. 替换 Hadoop 目录

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

3. 同步配置

cp /opt/hadoop_old/etc/hadoop/* /opt/hadoop/etc/hadoop/

4. 启动集群

start-dfs.sh

四、方式三:新集群迁移(最安全)

  1. 新装 CentOS + 新 Hadoop
  2. 使用 distcp 迁移数据
hadoop distcp hdfs://oldcluster/ hdfs://newcluster/

五、常见问题

Q1: 升级后 DataNode 起不来?

  • 检查 dfs.datanode.data.dir
  • 查看日志:
tail -200 $HADOOP_LOG_DIR/hadoop-hdfs-datanode-*.log

Q2: Hadoop 2 → 3 注意

  • 默认端口变化
  • 需要 JDK 8+

Q3: 能否回滚?

hdfs dfsadmin -rollingUpgrade rollback

(仅 Rolling Upgrade 未 finalize 前)


六、建议

场景 推荐方式
生产环境 Rolling Upgrade
测试环境 停止升级
大版本跨越 新集群迁移

如果你能提供:

  • 当前 Hadoop 版本
  • 是否 HA
  • CentOS 版本

我可以给你精确升级步骤。

0 踩