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

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

Hadoop升级

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

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

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

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

伪分布Hadoop2.7.6 hbase2.1.8升级到Hadoop3.1.3 hbase2.1.10_第1张图片

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

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

$ hdfs dfsadmin -finalizeUpgrade
Finalize upgrade successful

接下来进行hbase的升级

hbase升级

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

      hbase.wal.provider
      filesystem

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

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

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