HBase学习笔记-入门(2)-HBase集群搭建

前置条件

搭建HBase集群之间,首先需要完成Hadoop集群的搭建,并且需要先安装和搭建好Zookeeper。安装详情可以参考对应文章,搭建的集群同样为hadoop102hadoop103hadoop104

这里需要注意Hadoop、Zookeeper以及HBase的版本适配问题,可以参考官方文档:Apache HBase ™ Reference Guide

此处选择的版本如下:

软件 版本
Hadoop 3.1.3
Zookeeper 3.7.0
HBase 2.4.11

集群搭建

首先需要上传解压HBase安装包

1
tar -zxvf hbase-2.4.11-bin.tar.gz -C /opt/moudle

之后需要修改HBase中的配置文件,路径为$HBase/conf

首先需要修改hbase-env.sh文件,这其中配置了HBase运行时变量,如Java路径,RegionServer相关参数等。这里我们需要在其中配置Java环境,并且设置使用我们自己的Zookeeper:

1
2
export JAVA_HOME=/opt/module/jdk1.8.0_212/
export HBASE_MANAGES_ZK=false
  • 第一行设置Java环境

  • 第二行设置使用我们自己的Zookeeper

    如果该项设置为true,则表示使用Zookeeper作为HBase的一部分来管理启动,即Zookeeper随着HBase的启动而启动,随其关闭而关闭;

    如果设置为false,则表示Zookeeper作为独立的集群来运行,与HBase脱离关系。

之后需要配置hbase-site.xml文件,其中可以添加HBase的相关配置,如分布式的模式,Zookeeper的配置等,配置如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<configuration>
<!-- HBase数据在HDFS中的存放的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop102:8020/hbase</value>
</property>
<!-- Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- ZooKeeper的地址 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop102,hadoop103,hadoop104</value>
</property>
<!-- ZooKeeper快照的存储位置 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/module/zookeeper-3.7.0/zkData</value>
</property>
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
</configuration>

其中的NameNode节点,Zookeeper的地址,Zookeeper数据的存储位置需要按照实际进行配置。

(注意,NameNode节点和HMaster节点并没有绝对的一致关系,并不是说HMaster节点一定在NameNode节点上,具体在哪一个节点上运行HMaster与Zookeeper有关)

由于我们搭建的是完全分布式,所以需要在regionservers中写入需要配置为RegionServer的节点:

1
2
3
hadoop102
hadoop103
hadoop104

之后,添加相关的环境变量(和之前一样,我们选择放在/etc/profile.d/my_env.sh中):

1
2
3
4
#HBASE_HOME
export HBASE_HOME=/opt/module/hbase-2.4.11
export PATH=$PATH:$HBASE_HOME/bin
export PATH=$PATH:$HBASE_HOME/sbin

在一台机器上完成对应操作之后,将文件进行分发,最终三台机器上拥有了对应的文件夹。之后就可以启动集群了。

集群启动

在启动HBase之前,需要先启动Hadoop和Zookeeper。

命令如下:

1
2
3
4
# 启动HBase
$HBASE_HOME/bin/start-hbase.sh
# 关闭HBase
$HBASE_HOME/bin/stop-hbase.sh

由于配置了环境变量,可以直接使用。

启动集群之后,可以使用hbase shell进行测试。输入hbase shell进入命令行操作模式,输入status查看目前状态,出现以下内容则表示hbase已经安装配置成功了:

同时可以通过网页端可视化查看HBase,访问NameNode的16010端口(http://hadoop102:16010 )

通过jps查看目前运行的Java进程,可以在Master节点上查看到HMaster进程,Slave节点上查看到HRegionServer进程。如果使用的是HBase内置的Zookeeper,则节点上还能够查看到HQuorumPeer进程;如果使用的是用户的Zookeeper,则查看到的是QuorumPeerMain进程。

HQuorumPeer表示hbase管理的zookeeper

QuorumPeerMain表示zookeeper独立的进程

高可用配置

HBase的高可用配置其实就是HMaster的高可用。在高可用情况下,如果HMaster进程由于某种原因不在了,会在备用节点中重新选举出新的Master

配置HMaster的高可用步骤如下:

  1. $HBASE_HOME/conf中创建backup-masters文件
  2. 在文件中写入作为备用Master节点的主机名称,例如hadoop103、hadoop104
  3. 将修改后的文件进行分发
  4. 重启HBase
  5. 之后通过WebUI进行检查,可以查看到Backup Master中出现备用节点

HBase学习笔记-入门(2)-HBase集群搭建
http://example.com/2022/04/16/HBase学习笔记-入门-2-HBase集群搭建/
作者
EverNorif
发布于
2022年4月16日
许可协议