伪分布Hadoop2.7.6 hbase2.1.8升级到Hadoop3.1.3 hbase2.1.10

    技术2023-06-07  68

    如果Hadoop集群配置了高可用,则可以进行不停服的滚动升级。但现在是伪分布的单节点集群,因此需要停止Hadoop及相关的应用,包括hbase、zookeeper等。

    Hadoop升级

    因为目前有跑flink作业,checkpoint是放在hdfs上的,因此先停掉对应的job(只需要停job,不用关flink集群)停止hbase集群:stop-hbase.sh停止Hadoop集群:stop-all.sh备份hdfs元数据:包括namenode元数据、datanode元数据、临时数据,我都备份了。命令类似:

    tar -zcvf /opt/backup/backup_namenode.tar.gz *

    上传新版本Hadoop安装包,解压、配置(包括Hadoop配置文件,以及/etc/profile环境变量指向新版本)新版本sbin目录下执行升级操作:./start-dfs.sh -upgrade启动Hadoop集群:start-all.sh

    3.1.3版本的hdfs web端口由50070改为了9870: 

    此时可以看到上面有一行说明,红框中的意思是正在升级。

    等了10分钟左右还是这样,但我通过hdfs dfsadmin -report查看hdfs状态是正常的,且通过hdfs fsck -blocks查看块数据也没有丢失的,所以就直接输入如下命令来手动结束升级:

    $ hdfs dfsadmin -finalizeUpgrade Finalize upgrade successful

    接下来进行hbase的升级

    hbase升级

    上传新版本hbase安装包,解压,修改配置(包括hbase的配置文件以及/etc/profile中的hbase路径)将lib/client-facing-thirdparty下的两个htrace文件复制到lib下,不然启动hbase会报错org.apache.htrace.SamplerBuilder找不到启动hbase,如果报错FanOutOneBlockAsyncDFSOutputHelper找不到,则需要在hbase-site.xml添加配置 <property> <name>hbase.wal.provider</name> <value>filesystem</value> </property>

     再次启动即可。(可能需要过一段时间hbase shell才能用,我看了日志,大概5分钟之后可用)

    至此,Hadoop和hbase的伪分布模式升级完成。接下来把旧版本文件删掉即可。 

    Processed: 0.012, SQL: 9