1、hbase集群结构
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相关进程。
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/
这里还是先使用之前用过的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_MANAGES_ZK 进行查找HBASE_MANAGES_ZK。
可通过echo $JAVA_HOME来查看JAVA_HOME.
修改 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>
修改 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
之后通过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
3.6 通过浏览器访问hbase管理页面
node01:16010
node02:16010
node01
node02
3.7 为保证集群的可靠性,可以通过命令启动多个HMaster
在node03执行:
hbase-daemon.sh start master
此时,node03也和node02一样,成为了backup master。