OpenEuler部署HBase分布式集群

一 、前期准备

环境准备:

  • 三台Linux主机(OpenEuler-24.03-LTS-SP2)

  • JDK 1.8

  • Hadoop完全分布式集群

  • ZooKeeper完全分布式集群

HBase集群规划

node1 node2 node3
Master Backup Master
RegionServer RegionServer RegionServer

版本匹配查询

HBase与JDK版本

https://hbase.apache.org/book.html#java

在这里插入图片描述

HBase与Hadoop版本

https://hbase.apache.org/book.html#hbase.versioning

在这里插入图片描述

综合来看,HBase2.4.x对JDK8和Hadoop3.3.4都兼容,具体选择HBase 2.4.18

二、HBase 分布式集群部署

2.1 安装HBase

  1. 下载HBase,浏览器访问如下地址下载HBase安装包
https://archive.apache.org/dist/hbase/2.4.18/hbase-2.4.18-bin.tar.gz
  1. 上传到Linux
[hadoop@node1 ~]$ ls                                                                                                      
hbase-2.4.18-bin.tar.gz
  1. 解压到/opt/software目录
[hadoop@node1 ~]$ tar -zxvf hbase-2.4.18-bin.tar.gz -C /opt/software/

查看解压后文件

[hadoop@node1 ~]$ ls /opt/software/
hbase-2.4.18
  1. 创建软链接hbase指向到解压后的文件
[hadoop@node1 ~]$ cd /opt/software/
[hadoop@node1 software]$ ln -s /opt/software/hbase-2.4.18 hbase
[hadoop@node1 software]$ ll
lrwxrwxrwx.  1 hadoop hadoop   26  9月29日 06:33 hbase -> /opt/software/hbase-2.4.18
  1. 配置环境变量
[hadoop@node1 software]$ sudo vim /etc/profile.d/my_env.sh

添加内容:

#HBASE_HOME
export HBASE_HOME=/opt/software/hbase
export PATH=$PATH:$HBASE_HOME/bin

让环境变量生效:

[hadoop@node1 software]$ source /etc/profile

2.2 配置HBase集群

  1. 配置hbase-env.sh
[hadoop@node1 ~]$ cd /opt/software/hbase/conf/
[hadoop@node1 conf]$ ls
hadoop-metrics2-hbase.properties  hbase-env.sh      hbase-site.xml          log4j.properties
hbase-env.cmd                     hbase-policy.xml  log4j-hbtop.properties  regionservers
[hadoop@node1 conf]$ vim hbase-env.sh

修改如下三个地方:

(1)配置JAVA_HOME

export JAVA_HOME=/opt/software/jdk

(2) 去掉export HBASE_MANAGES_ZK一行前面的#注释,值修改为false

export HBASE_MANAGES_ZK=false

提示:hbase-env.sh配置文档中的HBASE_MANAGES_ZK的默认值是true,它表示HBase使用自身自带的Zookeeper实例。但是,该实例只能为单机或伪分布模式下的HBase提供服务

(3)去掉export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"一行前面的#号注释。

export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"

具体如下:

在这里插入图片描述

在这里插入图片描述

  1. 配置hbase-site.xml
[hadoop@node1 conf]$ vim hbase-site.xml 

删除原有配置内容(删除<configuration>标签内的原配置),<configuration>标签内添加如下配置

    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>node1,node2,node3</value>
    </property>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://node1:9820/hbase</value>
    </property>
    <!-- 在分布式的情况下一定要设置,不然容易出现Hmaster起不来的情况 -->
    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>

  1. 配置regionservers
[hadoop@node1 conf]$ vim regionservers

内容修改为如下主机名。(集群各节点的主机名)

node1
node2
node3
  1. 配置Master高可用

Master存在单点故障问题,生产环境有必要配置Master高可用,配置方法如下:

创建backup-masters文件

[hadoop@node1 conf]$ vim backup-masters

内容如下:

node2

即把node3当作HBase的备份Master。

  1. 分发到集群的其它节点

分发安装包:

[hadoop@node1 conf]$ xsync /opt/software/hbase
[hadoop@node1 conf]$ xsync /opt/software/hbase-2.4.18

分发环境变量:

sudo /home/hadoop/bin/xsync /etc/profile.d/my_env.sh

根据提示输入node1主机root账户的登录密码。

分别让node2及node3的环境变量生效:

node2:

[hadoop@node2 ~]$ source /etc/profile

node3:

[hadoop@node3 ~]$ source /etc/profile
  1. 启动集群

注意:先启动hadoop和zookeeper,再启动hbase,注意这个启动顺序,否则会造成没有HMaster

[hadoop@node1 ~]$ hdp.sh start
[hadoop@node1 ~]$ zk.sh start
[hadoop@node1 ~]$ start-hbase.sh

查看进程

[hadoop@node1 ~]$ hdp.sh jps
==================== node1 ====================
6720 NameNode
6993 DataNode
7362 NodeManager
7719 QuorumPeerMain
9324 Jps
9022 HRegionServer
8127 HMaster
==================== node2 ====================
5920 QuorumPeerMain
5344 NodeManager
5185 ResourceManager
6691 HRegionServer
7237 Jps
4920 DataNode
6909 HMaster
==================== node3 ====================
5234 NodeManager
5026 SecondaryNameNode
6579 Jps
5589 QuorumPeerMain
6310 HRegionServer
4842 DataNode

7.查看Web UI

hbase默认端口为16010,访问node1:16010

在这里插入图片描述

8.关闭hbase集群

[hadoop@node1 ~]$  stop-hbase.sh

提示:先关闭hbase,再关闭zookeeper和hadoop

至此,集群配置就已经完成。

HBase简单使用

  1. 进入hbase shell命令行
[hadoop@node1 ~]$ hbase shell
#略
hbase:001:0> 
  1. 创建表
hbase:001:0> create 't1','f1','f2'
Created table t1
Took 1.5607 seconds                                                                                                          
=> Hbase::Table - t1
hbase:002:0> 
  1. 查看表
hbase:002:0> list
TABLE                        
t1                     
1 row(s)
Took 0.0148 seconds          
=> ["t1"]
  1. 退出hbase shell命令行
hbase:003:0> quit
Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐