当前位置: 首页 > article >正文

Hadoop集群升级(3.1.3 -> 3.2.4)

升级前确认

旧版本:3.1.3
升级版本:3.2.4
旧版本安装路径:/ddhome/bin/hadoop/
新版本安装路径:/ddhome/bin/hadoop-3.2.4

安装新版本hadoop

  • 解压安装
# 解压安装包到相应目录下
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中
# 查看原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)添加如下配置信息:
  	<!-- 增加滚动升级 -->
    <property>
        <name>dfs.namenode.duringRollingUpgrade.enable</name>
        <value>true</value>
    </property>

升级NameNode

  • 在原3.1.3版本中的hadoop相关环境中执行
/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
# 在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
# 在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节点是否升级成功
# 先关闭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
# 查看hdfs-site.xml中的rpc相关设置
    <property>
        <name>dfs.namenode.rpc-address.masters.nn1</name>
        <value>ddcva:9000</value>
    </property>
  • 执行DataNode升级命令
hdfs dfsadmin -shutdownDatanode <DATANODE_HOST:IPC_PORT>
hdfs dfsadmin -getDatanodeInfo <DATANODE_HOST:IPC_PORT> 
# 备注:此处的PORT每个版本不固定,使用get命令逐个获取监听PORT的返回值,有个返回值中携带版本号,就是这个PORT
  • 重启每台的DataNode进行
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon stop datanode
/ddhome/bin/hadoop-3.2.4/bin/hdfs --daemon start datanode

完成升级滚动

  • 升级命令
/ddhome/bin/hadoop-3.2.4/bin/hdfs dfsadmin -rollingUpgrade Finalize
  • 完成namenode、datanode的升级后,需使用3.3.5的环境变量将journalnode,zkfc,resourcemanager,nodemanager,jobhistory等全部重启一遍,即可完成hadoop的全部滚动升级。
/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
  • 关闭集群
# 关闭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的相关文件
cd /ddhome/bin
mv hadoop hadoop-3.1.3
  • 重命名新版本的hadoop文件夹
cd /ddhome/bin
mv hadoop-3.2.4 hadoop
  • 启动hadoop集群并验证
# 全部开启
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进行启动与关闭

http://www.kler.cn/a/149341.html

相关文章:

  • Linux基础1
  • 第一个 Flutter 项目(1)共46节
  • 微服务(二)
  • 《C++在金融领域的技术革命:高效、安全与创新的融合》
  • 封装el-menu
  • idea 解决缓存损坏问题
  • 图表控件LightningChart .NET中文教程 - 如何创建WPF 2D热图?(二)
  • C#中的async/await异步编程模型
  • 使用git下载远程所有分支到本地
  • SpringBoot+网易邮箱登录注册
  • Rabbitmq发送邮件并消费邮件
  • Node.js下载安装教程
  • 开放式耳机性价比排行榜、开放式耳机性价比排行榜前十
  • 数据库常见的数据模型
  • 初识《树》
  • 如何运行C/C++程序
  • Mysql单表查询练习
  • Fabric:搭建自定义网络
  • 从戴森发明的“球轮手推车”看专利
  • docker镜像管理命令
  • HCIA-Datacom跟官方路线学习第二部分
  • Vue.js 的生命周期
  • 深入了解Java8新特性-日期时间API:OffsetDateTime类
  • MySQL双主双从数据库集群搭建
  • 记录:Unity脚本的编写7.0
  • 界面控件DevExpress WPF流程图组件,完美复制Visio UI!(二)