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.enablename>
        <value>truevalue>
    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进行启动与关闭

你可能感兴趣的:(大数据,hadoop,大数据)