Hadoop集群升级

Hadoop 集群升级

1、备份 Namenode 的元数据:

hdfs dfsadmin -fetchImage fsImage.back

2、下载并安装新版本的 Hadoop,推荐从国内镜像站点下载,速度会快很多。

3、修改环境变量,将 HADOOP_HOME 指向新版本的路径,OLD_HADOOP_HOME 指向旧版本的路径,避免混淆。

4、复制旧版本的配置文件到新版本配置文件路径,并修改和路径相关的配置。

5、接下来将 ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml 中的 dfs.namenode.name.dir和dfs.datanode.data.dir 属性的值分别指向新版本 Hadoop 路径下的 hdfs-site.xml 的dfs.namenode.name.dir 和 dfs.datanode.data.dir 属性的值。

6、新版本 hdfs-site.xml 中添加配置:

<property>
      <name>dfs.namenode.duringRollingUpgrade.enable</name>
      <value>true</value>
</property>

7、启动旧版本的 HADOOP 并进入安全模式:

# 进入安全模式
$ hdfs dfsadmin -safemode enter

# 创建备份
$ hdfs dfsadmin -rollingUpgrade prepare

# 关闭 Namenode, Datanode, SecondaryNamenode
$ stop-yarn.sh
$ stop-hdfs.sh

8、进入新版本的 Hadoop 目录,启动升级:

# 启动升级,速度很快
$ $HADOOP_HOME/bin/hdfs --daemon start namenode -rollingUpgrade started
# 启动 secondaryNamemode
$ $xHADOOP_HOME/bin/hdfs --daemon start secondarynamenode
# 升级 datanode
$ $HADOOP_HOME/bin/hdfs --daemon start datanode 

# 查看升级进度
$ ./hdfs dfsadmin -upgrade query
> Upgrade finalized

进入 HDFS web 页面会有提示:

Rolling upgrade started at Sun Aug 14 18:42:03 +0800 2022.
Rollback image has been created. Proceed to upgrade daemons.

进入 Datanodes 页面,每个节点最后一个字段也会提示当前 datanode 的版本升级到了新的版本。

9、确认升级成功

$ ./hdfs dfsadmin -rollingUpgrade finalize