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