Skip to content

HBase安装

1. 下载HBase

访问https://dlcdn.apache.org/hbase, 下载hbase-2.6.1-hadoop3-bin.tar.gz Alt text

2. 上传解压

将hbase-2.6.1-hadoop3-bin.tar.gz上传到hadoop103的/opt/module目录下

sh
[jack@hadoop103 software]$ ll
总用量 471124
-rw-rw-r--.  1 jack jack 337456264 11月 27 06:39 hbase-2.6.1-hadoop3-bin.tar.gz
-rw-rw-r--.  1 jack jack 141887242 8月   3 21:04 jdk-8u391-linux-x64.tar.gz
[jack@hadoop103 software]$ tar -xvf hbase-2.6.1-hadoop3-bin.tar.gz -C ../module/
drwxrwxr-x.  8 jack jack  157 11月  8 00:25 zookeeper-3.8.4
[jack@hadoop103 module]$ mv hbase-2.6.1-hadoop3 hbase-2.6.1
[jack@hadoop103 module]$ cd hbase-2.6.1/
[jack@hadoop103 hbase-2.6.1]$ ll
总用量 2368
drwxr-xr-x.  4 jack jack    4096 1月  22 2020 bin
-rw-r--r--.  1 jack jack 1030787 1月  22 2020 CHANGES.md
drwxr-xr-x.  2 jack jack     210 1月  22 2020 conf
drwxr-xr-x. 10 jack jack    4096 1月  22 2020 docs
drwxr-xr-x.  8 jack jack      94 1月  22 2020 hbase-webapps
-rw-r--r--.  1 jack jack     262 1月  22 2020 LEGAL
drwxrwxr-x.  8 jack jack   12288 11月 27 07:12 lib
-rw-r--r--.  1 jack jack  146409 1月  22 2020 LICENSE.txt
-rw-r--r--.  1 jack jack  615172 1月  22 2020 NOTICE.txt
-rw-r--r--.  1 jack jack  595345 1月  22 2020 RELEASENOTES.md

3. HBase的配置

  1. 修改/etc/profile.d/my_env.sh,添加HBASE_HOME环境变量
sh
[jack@hadoop103 conf]$ sudo vim /etc/profile.d/my_env.sh 
#HBASE_HOME
export HBASE_HOME=/opt/module/hbase-2.6.1
export PATH=$PATH:$HBASE_HOME/bin
[jack@hadoop103 conf]$ source /etc/profile
  1. 配置$HBASE_HOME/conf/hbase-env.sh
sh
[jack@hadoop103 conf]$ vim hbase-env.sh
## 不使用内置的ZK
export HBASE_MANAGES_ZK=false
  1. 配置$HBASE_HOME/conf/hbase-site.xml
xml
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop102,hadoop103,hadoop104</value>
</property>
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop102:8020/HBase</value>
</property>
  1. 修改regionservers文件
sh
[jack@hadoop103 conf]$ vim regionservers
hadoop102
hadoop103
hadoop104
  1. 解决hbase和hadoop的log4j兼容性问题,修改hbase的jar包,使用hadoop的jar包
sh
[jack@hadoop103 hbase-2.6.1]$ mv /opt/module/hbase-2.6.1/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar /opt/module/hbase-2.6.1/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar.bak
  1. 分发hbase到hadoop103,hadoop104
sh
[jack@hadoop103 module]$ xsync hbase-2.6.1

4. 启停HBase

4.1 启动方式1

  1. 在单个机器上执行启动
sh
## 单个节点启动
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver
  1. 在单个机器上执行停止
sh
bin/hbase-daemon.sh stop master
bin/hbase-daemon.sh stop regionserver

4.2 启动方式2

  1. HBase集群启动
sh
## 需要在master节点执行,要求各个机器之间时间保持一致
bin/start-hbase.sh
  1. HBase集群停止
sh
## 需要在master节点执行
bin/stop-hbase.sh

4.3 查看HBase页面

启动成功后,访问http://hadoop102:16010 查看HBase管理页面:
Alt text

5. 配置高可用

在HBase中HMaster负责监控HRegionServer的生命周期,均衡RegionServer的负载,如果HMaste挂掉了,那么整个HBase集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以HBase支持对HMaster的高可用配置。

5.1 在conf目录创建backup-masters文件

sh
## 需要提前关闭hbase集群
[jack@hadoop102 hbase-2.6.1]$ touch conf/backup-masters

5.2 在backup-masters文件配置高可用节点

sh
[jack@hadoop102 hbase-2.6.1]$ vim conf/backup-masters
添加以下内容
hadoop103

5.3 将整个conf目录同步到其他节点

sh
[jack@hadoop102 hbase-2.6.1]$ xsync conf

5.4 启动集群

sh
[jack@hadoop102 hbase-2.6.1]$ ./bin/start-hbase.sh 
running master, logging to /opt/module/hbase-2.6.1/logs/hbase-jack-master-hadoop102.out
2024-11-27 08:42:46,538 INFO  [main] master.HMaster (HMaster.java:main(3421)) - STARTING service HMaster
2024-11-27 08:42:46,540 INFO  [main] util.VersionInfo (VersionInfo.java:logVersion(112)) - HBase 2.6.1
2024-11-27 08:42:46,541 INFO  [main] util.VersionInfo (VersionInfo.java:logVersion(112)) - Source code repository git://5d132f6e0305/home/ndimiduk/hbase-rm/output/hbase revision=7ed50b4dd742269a78875fb32112215f831284ff
2024-11-27 08:42:46,541 INFO  [main] util.VersionInfo (VersionInfo.java:logVersion(112)) - Compiled by ndimiduk on Wed Oct  9 10:33:23 UTC 2024
2024-11-27 08:42:46,541 INFO  [main] util.VersionInfo (VersionInfo.java:logVersion(112)) - From source with checksum 63fc9a9f53780d4b96c58332d1d251bf2bd04ee73c45f2e19ab5e6ecf85efb343c3c23607362913ec3ef5a66602026b363e38e43821664f38e96830ed818c41d
hadoop103: running regionserver, logging to /opt/module/hbase-2.6.1/logs/hbase-jack-regionserver-hadoop103.out
hadoop104: running regionserver, logging to /opt/module/hbase-2.6.1/logs/hbase-jack-regionserver-hadoop104.out
hadoop102: running regionserver, logging to /opt/module/hbase-2.6.1/logs/hbase-jack-regionserver-hadoop102.out
hadoop103: running master, logging to /opt/module/hbase-2.6.1/logs/hbase-jack-master-hadoop103.out
[jack@hadoop102 hbase-2.6.1]$ xcall jps
--------- hadoop102 ----------
29312 HMaster
29573 HRegionServer
25863 DataNode
20807 QuorumPeerMain
26232 NodeManager
25721 NameNode
29961 Jps
26427 JobHistoryServer
21261 Kafka
--------- hadoop103 ----------
92560 Jps
90791 ResourceManager
46759 Kafka
90918 NodeManager
91992 HRegionServer
46298 QuorumPeerMain
92219 HMaster
90588 DataNode
--------- hadoop104 ----------
11906 NodeManager
12818 HRegionServer
13090 Jps
8884 QuorumPeerMain
11684 DataNode
11789 SecondaryNameNode
9326 Kafka