1、hbase集群结构

HBase(03)——HBase集群及集群搭建-LMLPHP

2、Hbase集群基本组件说明

Client:

包含访问Hbase的接口,并维护cache来加快对Hbase的访问,比如region的位置信息。

HMaster:

是hbase集群的主节点,可以配置多个,用来实现HA
为RegionServer分配region
负责RegionServer的负载均衡
发现失效的RegionServer并重新分配其上的region

RegionServer:

Regionserver维护region,处理对这些region的IO请求
Regionserver负责切分在运行过程中变得过大的region

Region:

分布式存储的最小单元。

Zookeeper:

Zookeeper作用:
通过选举,保证任何时候,集群中只有一个活着的HMaster,HMaster与RegionServers 启动时会向ZooKeeper注册
存贮所有Region的寻址入口
实时监控Region server的上线和下线信息。并实时通知给HMaster
存储HBase的schema和table元数据
Zookeeper的引入使得HMaster不再是单点故障。

3、hbase集群搭建

首先要有一个zookeeper和hadoop集群的环境。
并启动zookeeper和hadoop.
(查看进程,已经启动zookeeper和hadoop hdfs相关进程。
HBase(03)——HBase集群及集群搭建-LMLPHP

3.1 上传hbase安装包并解压

目前hbase1.x 的版本最新为1.4.7(发布于2018/09/04),2.0.x和2.1.x也均有版本在发行。
可以下载1.4.7进行安装部署。
http://archive.apache.org/dist/hbase/1.4.7/
HBase(03)——HBase集群及集群搭建-LMLPHP
这里还是先使用之前用过的1.2.1版本。
解压:

tar -zvxf hbase-1.2.1-bin.tar.gz -C /export/servers/

3.2 配置hbase配置文件

把hadoop的hdfs-site.xml和core-site.xml 复制到hbase/conf下。
cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop

cp hdfs-site.xml /export/servers/hbase-1.2.1/conf/
cp core-site.xml /export/servers/hbase-1.2.1/conf/
修改hbase-env.sh
export JAVA_HOME=/export/servers/jdk1.8.0_141
//告诉hbase使用外部的zk
export HBASE_MANAGES_ZK=false

HBase(03)——HBase集群及集群搭建-LMLPHP
注:可通过在非插入模式下,使用 /HBASE_MANAGES_ZK 进行查找HBASE_MANAGES_ZK。

可通过echo $JAVA_HOME来查看JAVA_HOME.
HBase(03)——HBase集群及集群搭建-LMLPHP

修改 hbase-site.xml
<configuration>
		<!-- 指定hbase在HDFS上存储的路径 -->
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://node01:8020/hbase</value>
        </property>
		<!-- 指定hbase是分布式的 -->
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
		<!-- 指定zk的地址,多个用“,”分割 -->
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>node01:2181,node02:2181,node03:2181</value>
        </property>
</configuration>

HBase(03)——HBase集群及集群搭建-LMLPHP

修改 regionservers文件

将regionservers文件内容修改为:

node02
node03

修改 backup-masters来指定备用的主节点

vim backup-masters

node02

3.3 配置hbase环境变量

vim /etc/profile
添加以下代码:

export HBASE_HOME=/export/servers/hbase-1.2.1/
export PATH=$HBASE_HOME/bin:$PATH

HBase(03)——HBase集群及集群搭建-LMLPHP

之后通过source /etc/profile使其立即生效。

3.4 将node01 的安装包和环境变量拷贝到其他节点

scp -r hbase-1.2.1/ node02:$PWD
scp -r hbase-1.2.1/ node03:$PWD
scp  /etc/profile  node02:/etc
scp  /etc/profile  node03:/etc

并使node02和node03环境变量立即生效。

3.5 启动所有的hbase进程

首先启动zk集群,启动hdfs集群,之前已启动。
启动hbase,在主节点node1上运行:
start-hbase.sh
HBase(03)——HBase集群及集群搭建-LMLPHP

3.6 通过浏览器访问hbase管理页面

node01:16010
node02:16010

node01
HBase(03)——HBase集群及集群搭建-LMLPHP
node02
HBase(03)——HBase集群及集群搭建-LMLPHP

3.7 为保证集群的可靠性,可以通过命令启动多个HMaster

在node03执行:
hbase-daemon.sh start master
HBase(03)——HBase集群及集群搭建-LMLPHP

此时,node03也和node02一样,成为了backup master。
HBase(03)——HBase集群及集群搭建-LMLPHP

10-03 17:23