如何在安装 HBase

本教程是在 VMware 的环境下搭建 Hadoop 集群,并在其基础上安装 HBase。

本教程更新时间为:2024 年 04 月 28 日,在此之后官方版本更新,请酌情参考。

版本

  • VMware: 17.0.5
  • JDK: Adoptium 1.8.0_402
  • Hadoop: 3.3.6
  • HBase: 2.5.8

Hadoop

Hadoop 安装点击这里

HBase

接下来我们就需要在 Hadoop 的基础上安装分布式 HBase。

下载

首先我们需要下载 HBase,点击这里打开 HBase 下载页面。

image-20240428115544362

选择 2.5.8 稳定版本进行下载,然后点击 bin 地址进行下载。

image-20240428115609168

选中官方推荐的地址即可下载,其他地址也可用(建议采用迅雷等下载工具下载,速度比较会快很多,上传至 UBUNTU 系统,或者从虚拟机中下载此链接文件)。

image-20240428115802076

使用归档管理器打开下载 tar.gz 安装包,点击【提取】按钮进行解压。

image-20240428115844405

我这里选择解压到用户主目录,跟 hadoop 安装目录同级,然后点击【提取】按钮。

hbase 安装路径如下:

1
/home/hadoop/hbase-2.5.8-hadoop3

环境变量

使用命令 gedit /home/hadoop/.bashrc 编辑用户环境变量文件,将下面的文本添加进环境变量

1
2
3
# HBASE
export HBASE_HOME=/home/hadoop/hbase-2.5.8-hadoop3
export PATH=${HBASE_HOME}/bin:$PATH

运行命令 source /home/hadoop/.bashrc,更新用户变量。

配置

hbase-env.sh

该文件用于配置 hbase 的运行环境。你需要在该文件中添加如下配置:

1
2
export JAVA_HOME=/home/hadoop/jdk8u402-b06
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"

HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP 可解决 slf4j 在 Hadoop 和 Hbase 中同时存在依赖冲突的问题

hbase-site.xml

这是 hbase 的主要的参数配置文件。你需要在该文件中配置如下信息:

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
27
28
29
30
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>设置Hbase为分布式模式</description>
</property>

<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
<description>设置hbase的根目录, 不需要自己创建,hbase会自动创建目录.</description>
</property>

<!--配置zoopkeeper的集群-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>

<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/hbase-2.5.8-hadoop3/zookeeper-conf</value>
<description>zookeeper的属性数据目录,如果你不想重启电脑就被清空的话就要配置这个,因为默认是/tmp</description>
</property>

<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>

backup-masters

根据我们的架构, 需要将 slave1 配置为备用 master。

集体操作就是:在 conf/ 目录下创建一个名为 back-masters 文件。然后将 slave1 的 IP 或者域名写进去。

1
echo "slave1" > back-masters

regionservers

添加所有节点主机名到该文件

1
2
3
master
slave1
slave2

同步到其他节点

到此一个节点上的配置就已经全部配置完毕了

接下来,我们可以使用下面的命令,将 JDK 和 Hadoop 传输到其他节点

1
2
3
4
scp -r /home/hadoop/hbase-2.5.8-hadoop3 slave1:/home/hadoop/
scp /home/hadoop/.bashrc slave1:/home/hadoop/
scp -r /home/hadoop/hbase-2.5.8-hadoop3 slave2:/home/hadoop/
scp /home/hadoop/.bashrc slave2:/home/hadoop/

启动

启动 Hadoop

使用下面的命令启动 HDFS

1
start-dfs.sh

启动 HBase

通过以下命令启动 HMaster

1
hbase-daemon.sh start master

或者通过下面的命令完全启动 HBasee

1
start-hbase.sh

关闭 Hadoop

使用下面的命令启动 HDFS

1
stop-dfs.sh

关闭 HBase

通过以下命令关闭 HMaster

1
hbase-daemon.sh stop master

使用下面的命令启动 HBase

1
stop-hbase.sh

启动成功

启动完毕后可以使用 jps 命令查看启动的 hadoop 进程

master 节点

1
2
3
4
5
6
7
6775 HQuorumPeer
7064 HRegionServer
2633 NameNode
2988 SecondaryNameNode
7757 Jps
2766 DataNode
6878 HMaster

slave 节点

1
2
3
4
4416 Jps
2995 DataNode
3929 HQuorumPeer
4093 HRegionServer

通过 hbase shell 命令再输入 status 查看集群状态。

可以访问 http://master:16010/ ,查看 HBase 运行情况。

image-20240428113845412