主机信息:
IP | 主机名 | 备注 |
192.168.39.15 | master.hadoop.ljs | master |
192.168.39.16 | worker1.hadoop.ljs | worker1 |
192.168.39.17 | worker2.hadoop.ljs | worker2 |
二、安装步骤
HBase集群运行需要jdk,所以安装之前三个机器先把jd安装好,免密码登录ssh也要做(master->master、master->worker1、master->worker2)免密都要做,这里我的hadoop和zookeeper是已经安装好的,版本分别是hadoop3.1.1、zookeeper3.4.6,这里就不再写他两个的安装了。
1.HBase的软件安装包可直接从官网下载,里面有所有版本安装包,地址如下:
http://archive.apache.org/dist/hbase/
我这里选择的是HBase2.4.1:
http://archive.apache.org/dist/hbase/2.4.1/hbase-2.4.1-bin.tar.gz
2.将hbase-2.4.1-bin.tar.gz包上传到master节点/data目录下,执行命令解压tar.gz文件:
tar -zxvf hbase-2.4.1-bin.tar.gz
mv hbase-2.4.1-bin hbase241
3.需要修改conf目录下三个配置文件hbase-env.sh、hbase-site.xml、regionservers
1).在hbase-env.sh添加以下内容,这个文件一般都是配置一些环境变量信息:
//指定jdk路径
export JAVA_HOME=/opt/jdk1.8.0_231
//指定hadoop路径
export HADOOP_HOME=/usr/hdp/3.1.4.0-315/hadoop
//这里如果使用外部zk就为false,自带zk为true,这里我们使用已经安装的zooekeeper
export HBASE_MANAGES_ZK=false
2) .在hbase-site.xml添加如下配置,这里我列的是最基本的分布式部署需要的配置项:
<!--设置HBase表数据,也就是真正的HBase数据在hdfs上的存储根目录 core-site.xml
里一样<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.39.4:8888</value>
</property>-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://db1:8888/hbase</value>
</property>
<!--是否为分布式模式部署,true表示分布式部署-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--zookeeper集群的URL配置,多个host中间用逗号-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>master.hadoop.ljs,worker1.hadoop.ljs,worker2.hadoop.ljs</value>
</property>
<!-- 本地文件系统tmp目录,一般配置成local模式的设置一下,但是最好还是需要设置一下,因为很多文件都会默认设置成它下面的-->
<property>
<name>hbase.tmp.dir</name>
<value>/data/hbase241Data/tmp</value>
</property>
<!--HBase在zookeeper上数据的根目录znode节点-->
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase241</value>
</property>
<!--设置zookeeper通信端口,不配置也可以,zookeeper默认就是2181-->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<!-- 使用本地文件系统设置为false,使用hdfs设置为true -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
这里最后一个配置项hbase.unsafe.stream.capability.enforce ,如果不加上会报错:

3 ).修改regionservers,也就是有几个regionserver,这里三个节点都加上:
master.hadoop.ljs
worker1.hadoop.ljs
worker2.hadoop.ljs
4.配置修改完毕,将整个目录拷贝到worker1、worker2节点即可,拷贝过去后,整个目录最起码要有可执行权限,一般改成755即可:
scp -r /data/hbase241 worker1:/data/
scp -r /data/hbase241 worker2:/data/
5.如果为了方便操作,最好将bin目录配置到PATH中,在/etc/profile最后添加:
export HBASE_HOME=/data/hbase241
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin
保存,使配置生效:
source etc/profile
6.启动集群,这里有几个常用命令,这里都一块说一下:
1).启动整个集群,在master节点执行:
/data/hbase241/bin/start-hbase.sh
2).停止整个集群,在master节点执行:
/data/hbase241/bin/stop-hbase.sh
3).单独启动/停止HMaster节点,在master上执行命令:
//启动HMaster
data/hbase241/bin/hbase-daemon.sh start master
//停止HMaster
data/hbase241/bin/hbase-daemon.sh start master
4)单独启动/停止一个regionserver,需要启动/停止哪个节点,就登录到哪个节点执行即可,这里登录到worker1节点执行命令:
//单独启动一个regionserver
data/hbase241/bin/hbase-daemon.sh start regionserver
//单独停止一个regionserver
/data/hbase241/bin/hbase-daemon.sh stop regionserver
5).启动/停止集群conf目录下regionservers文件配置的所有regionserver,需要在master节点执行命令:
//启动集群所有regionserver
data/hbase241/bin/hbase-daemons.sh start regionserver
停止集群所有regionserver
/data/hbase241/bin/hbase-daemons.sh stop regionserver
7.集群安装完成,可登录HBase自带的webUI验证一下,如果不能访问就去看HBase日志,默认在HBase目录的logs中:
http://master.hadoop.ljs:16010
日志文件:
tar -xzvf hbase-2.4.1-bin.tar.gz
cd /opt/hbase-2.4.1/conf
Vi hbase-env.sh :
export HBASE_HOME=/opt/hbase-2.4.1
export JAVA_HOME=/opt/jdk1.8.0_231
export HBASE_MANAGES_ZK=false
vi hbase-site.xml
<!--设置HBase表数据,也就是真正的HBase数据在hdfs上的存储根目录 core-site.xml
里一样<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.39.4:8888</value>
</property>-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://db1:8888/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/opt/hbase-2.4.1/tmp</value>
</property>
<!--zookeeper集群的URL配置,多个host中间用逗号,这里是一台主机模拟三台zookeeper-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>db1</value>
#<value>db1:2182,db1:2183,db1:2184</value>
</property>
<!--设置zookeeper通信端口,不配置也可以,zookeeper默认就是2181-->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2184</value>
</property>
<!-- 此属性可省略,默认值就是/hbase -->
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
#HMaster节点上启动HMaster命令
hbase-daemon.sh start master
#启动HRegionServer命令
hbase-daemon.sh start regionserver
[hadoop@node01 ~]$ stop-hbase.sh
[hadoop@node01 ~]$ start-hbase.sh
1.启动thrift-server
要使用Hbase的thrift接口,必须将它的服务启动,启动Hbase的thrift-server进程如下:
cd /app/zpy/hbase/bin
./hbase-daemon.sh start thrift
REST Server:REST服务器,该服务器将HBase表,行,单元和元数据作为URL指定的资源公开。启动hbase REST服务后就可以通过对uri: http://localhost:60050/api/ 的通用REST操作(GET/POST/PUT/DELETE)实现对hbase的REST形式数据操作.
1. 启停:方式有两种:
非后台启动方式:./bin/hbase rest start(默认为8080端口,可以指定为其他端口使用-p 端口)
后台方式启动:./bin/hbase-daemon.sh start rest
非后台关闭方式:Ctrl-C
后台方式关闭:./bin/hbase-daemon.sh stop rest




