Bootstrap

Hbase2.2.7集群部署

环境说明

  • 准备三台服务器,分别为:bigdata141(作为Hbase主节点)、bigdata142、bigdata143
  • 确保hadoop和zookeeper集群都先启动好
  • 我这边的hadoop版本为3.2.0,zookeeper版本为3.5.8 

下载安装包

下载链接:Index of /dist/hbase/2.2.7

下载完后,上传到其中一台服务器,我这边上传到 bigdata141 的 /data/soft/ 目录下

解压并配置

解压

[root@bigdata141 soft]# tar -zxvf hbase-2.2.7-bin.tar.gz 
[root@bigdata141 soft]# ll
drwxr-xr-x. 6 root  root        170 Nov 27 20:06 hbase-2.2.7
-rw-r--r--. 1 root  root  220793877 Nov 27 14:31 hbase-2.2.7-bin.tar.gz
[root@bigdata141 soft]# cd hbase-2.2.7/conf

 配置

1、首先修改 hbase-env.sh,先复制备份,再修改

[root@bigdata141 conf]# cp hbase-env.sh hbase-env.sh.bak
[root@bigdata141 conf]# vi hbase-env.sh

在文件末尾添加以下配置即可:注意 jdk 和 hadoop 的安装目录要换成自己的

export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_HOME=/data/soft/hadoop-3.2.0
export HBASE_MANAGES_ZK=false
export HBASE_LOG_DIR=/data/hbase/logs

2、接着修改 hbase-site.xml,先复制备份,再修改:

[root@bigdata141 conf]# cp hbase-site.xml hbase-site.xml.bak
[root@bigdata141 conf]# vi hbase-site.xml

 以下属性在文件中都能找到,修改属性值即可:

<!--是否为分布式模式部署,true表示分布式部署-->
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<!-- 本地文件系统tmp目录-->
<property>
    <name>hbase.tmp.dir</name>
    <value>/data/hbase/tmp</value>
</property>
<!-- 这个参数的值默认不变即可,默认就是false。在分布式情况下, 一定设置为false -->
<property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
</property>

然后再额外添加以下属性即可:注意有些属性值要换成自己的

<!--设置HBase表数据,也就是HBase数据在hdfs上的存储根目录-->
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://bigdata141:9000/hbase</value>
</property>
<!--zookeeper集群的URL配置,多个host中间用逗号隔开-->
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>bigdata141,bigdata142,bigdata143</value>
</property>
<!--HBase在zookeeper上数据的根目录znode节点-->
<property>
    <name>zookeeper.znode.parent</name>
    <value>/hbase</value>
</property>
<!--设置zookeeper通信端口,不配置也可以,zookeeper默认就是2181-->
<property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
</property>

3、最后修改 reginservers 文件:

[root@bigdata141 conf]# vi regionservers 

 在该文件中添加Hbase从节点的主机名或IP,我这边添加主机名

bigdata142
bigdata143

4、将配置好的安装包复制到其他节点:

[root@bigdata141 soft]# scp -rq hbase-2.2.7/ bigdata142:/data/soft/
[root@bigdata141 soft]# scp -rq hbase-2.2.7/ bigdata143:/data/soft/

启动Hbase

启动Hbase前,先确认hadoop和zookeeper集群已经启动好,然后再启动Hbase:

[root@bigdata141 hbase-2.2.7]# bin/start-hbase.sh 

查看各个节点hbase是否启动:主节点有HMaster进程,从节点有HRegionServer进程,部署完成

[root@bigdata141 hbase-2.2.7]# jps -l
1987 org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode
4195 org.apache.zookeeper.server.quorum.QuorumPeerMain
6198 org.apache.hadoop.hbase.master.HMaster
1706 org.apache.hadoop.hdfs.server.namenode.NameNode
2253 org.apache.hadoop.yarn.server.resourcemanager.ResourceManager
6415 sun.tools.jps.Jps
[root@bigdata142 soft]# jps -l
4800 sun.tools.jps.Jps
4565 org.apache.hadoop.hbase.regionserver.HRegionServer
1544 org.apache.hadoop.hdfs.server.datanode.DataNode
1662 org.apache.hadoop.yarn.server.nodemanager.NodeManager
3071 org.apache.zookeeper.server.quorum.QuorumPeerMain
[root@bigdata143 soft]# jps -l
1537 org.apache.hadoop.hdfs.server.datanode.DataNode
4786 sun.tools.jps.Jps
1655 org.apache.hadoop.yarn.server.nodemanager.NodeManager
3067 org.apache.zookeeper.server.quorum.QuorumPeerMain
4527 org.apache.hadoop.hbase.regionserver.HRegionServer

通过 16010 端口访问web页面

停止Hbase

注意,停止顺序:Hbase--->Zookeeper--->Hadoop,

最好不要先停止zookeeper或者hadoop,

否则会有问题

[root@bigdata141 hbase-2.2.7]# bin/stop-hbase.sh 
stopping hbase.................
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/data/soft/hadoop-3.2.0/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/data/soft/hbase-2.2.7/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]

;