Hadoop集群升级(3.1.3 -> 3.2.4)

升级前确认

旧版本:3.1.3

升级版本:3.2.4

旧版本安装路径:/ddhome/bin/hadoop/

新版本安装路径:/ddhome/bin/hadoop-3.2.4

安装新版本hadoop

  • 解压安装
shell 复制代码
# 解压安装包到相应目录下
tar -zxvf /ddhome/tools/hadoop-3.2.4.tar.gz -C /ddhome/bin/
# 复制3.1.3的配置文件到3.2.4中
cd /ddhome/bin/hadoop/etc/hadoop/
cp -r hdfs-site.xml core-site.xml mapred-site.xml yarn-site.xml workers /ddhome/bin/hadoop-3.2.4/etc/hadoop/
# 分发安装包到其余节点中
  • 备份NameNode元数据到3.2.4中
shell 复制代码
# 查看原NameNode中元数据的存储位置
# hdfs-site.xml
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/ddhome/bin/hadoop/tmp/hdfs/name</value>
    </property>
# 备份(每台节点上执行)
cp -r /ddhome/bin/hadoop/tmp /ddhome/bin/hadoop-3.2.4/

增加升级滚动配置

  • 在新版本呢3.2.4的配置文件中(hdfs-site.xml)添加如下配置信息:
xml 复制代码
  	<!-- 增加滚动升级 -->
    <property>
        <name>dfs.namenode.duringRollingUpgrade.enable</name>
        <value>true</value>
    </property>

升级NameNode

  • 在原3.1.3版本中的hadoop相关环境中执行
shell 复制代码
/ddhome/bin/hadoop/bin/hdfs dfsadmin -rollingUpgrade prepare
/ddhome/bin/hadoop/bin/hdfs dfsadmin -rollingUpgrade query
# 查看NameNode节点的状态
hdfs haadmin -getServiceState nn1
hdfs haadmin -getServiceState nn2
  • 关闭standby节点中的NameNode
shell 复制代码
# 在standby节点中关闭NameNode进程
# 在原3.1.3版本中的hadoop相关环境中执行
/ddhome/bin/hadoop/bin/hdfs --daemon stop namenode
# 在新版本3.2.4中的hadoop相关环境中执行
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon start namenode -rollingUpgrade started -upgrade
# 执行完毕后,可以通过jps查看进程是否启动
  • 关闭active节点中的NameNode
shell 复制代码
# 在standby节点中关闭NameNode进程
# 在原3.1.3版本中的hadoop相关环境中执行
/ddhome/bin/hadoop/bin/hdfs --daemon stop namenode
# 在新版本3.2.4中的hadoop相关环境中执行
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon start namenode -rollingUpgrade started
# 执行完毕后,可以通过jps查看进程是否启动
  • 验证NameNode节点是否升级成功
shell 复制代码
# 先关闭active状态的NameNode
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop namenode
# 通过查看节点是否可以实现状态切换
hdfs haadmin -getServiceState nn1
hdfs haadmin -getServiceState nn2
# 如果可以切换,则启动刚关闭NameNode进程

升级DataNode

  • 查看IPC_PORT
shell 复制代码
# 查看hdfs-site.xml中的rpc相关设置
    <property>
        <name>dfs.namenode.rpc-address.masters.nn1</name>
        <value>ddcva:9000</value>
    </property>
  • 执行DataNode升级命令
shell 复制代码
hdfs dfsadmin -shutdownDatanode <DATANODE_HOST:IPC_PORT>
hdfs dfsadmin -getDatanodeInfo <DATANODE_HOST:IPC_PORT> 
# 备注:此处的PORT每个版本不固定,使用get命令逐个获取监听PORT的返回值,有个返回值中携带版本号,就是这个PORT
  • 重启每台的DataNode进行
shell 复制代码
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop datanode
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon start datanode

完成升级滚动

  • 升级命令
shell 复制代码
/ddhome/bin/hadoop-3.2.4/bin/hdfs dfsadmin -rollingUpgrade Finalize
  • 完成namenode、datanode的升级后,需使用3.3.5的环境变量将journalnode,zkfc,resourcemanager,nodemanager,jobhistory等全部重启一遍,即可完成hadoop的全部滚动升级。
shell 复制代码
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon start journalnode
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon start zkfc

/ddhome/bin/hadoop-3.2.4/bin/yarn --daemon start resourcemanager
/ddhome/bin/hadoop-3.2.4/bin/yarn --daemon start nodemanager
  • 关闭集群
shell 复制代码
# 关闭yarn
/ddhome/bin/hadoop-3.2.4/bin/yarn --daemon stop resourcemanager
/ddhome/bin/hadoop-3.2.4/bin/yarn --daemon stop nodemanager
# 关闭hdfs
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop datanode
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop namenode
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop zkfc
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop journalnode

恢复hadoop相关的配置文件路径

  • 首先关闭集群
  • 移动|重命名|删除 原3.1.3hadoop的相关文件
shell 复制代码
cd /ddhome/bin
mv hadoop hadoop-3.1.3
  • 重命名新版本的hadoop文件夹
shell 复制代码
cd /ddhome/bin
mv hadoop-3.2.4 hadoop
  • 启动hadoop集群并验证
shell 复制代码
# 全部开启
start-all.sh
# 此时namenode可能都启动不了,需单独启动
# 通过日志文件可以查看,dava中,执行
hdfs --daemon start namenode -rollingUpgrade started -upgrade
# 在ddvab中,同步主节点数据
hdfs namenode -bootstrapStandby
# 在ddavb中启动NameNode
hdfs --daemon start namenode
  • 后面再启动或者关闭hadoop集群的时候,可以通过start-all.sh和stop-all.sh进行启动与关闭
相关推荐
虾球xz2 小时前
CppCon 2016 学习:GAME ENGINE USING C++11
大数据·开发语言·c++·学习
CSTechEi5 小时前
【IEEE/EI/Scopus检索】2025年第五届机器学习与大数据管理国际会议 (MLBDM 2025)
大数据·人工智能·机器学习·大数据管理·ei学术会议
萤火虫儿飞飞8 小时前
关爱敏宝健康成长,Witsbb健敏思“防敏行动,无敏100+”学术交流会在人民日报社举行
大数据·人工智能
isNotNullX10 小时前
什么是数据清洗?数据清洗有哪些步骤?
大数据·数据库·数据仓库·数据治理·元数据
打码人的日常分享12 小时前
智慧园区建设资料合集(Wordppt原件)
大数据·物联网·流程图·智慧城市·制造
洗发水很好用12 小时前
制造部门的转型目标与场景痛点
大数据·数据库·制造
API_technology15 小时前
亚马逊 API 实战:商品详情页实时数据采集接口开发与调用
大数据·开发语言·python·数据挖掘
lilye6620 小时前
精益数据分析(101/126):SaaS商业模式优化与用户生命周期价值提升策略
大数据·数据挖掘·数据分析
isfox1 天前
Hadoop 版本进化论:从 1.0 到 2.0,架构革命全解析
大数据·后端
星环科技TDH社区版1 天前
星环科技产品可存储的表格式功能介绍以及创建示例
大数据·数据库