HBase完全分布式搭建
- 前言
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务。 - HBase架构
Hbase基本组件
Client:
包含访问Hbase的接口,并维护cache来加快对Hbase的访问,比如region的位置信息。
HMaster:
是hbase集群的主节点,可以配置多个,用来实现HA
为RegionServer分配region
负责RegionServer的负载均衡
发现失效的RegionServer并重新分配其上的region
RegionServer:
Regionserver维护region,处理对这些region的IO请求
Regionserver负责切分在运行过程中变得过大的region
Region:
分布式存储的最小单元。
Zookeeper作用:
通过选举,保证任何时候,集群中只有一个活着的HMaster,HMaster与RegionServers 启动时会向ZooKeeper注册
存贮所有Region的寻址入口
实时监控Region server的上线和下线信息。并实时通知给HMaster
存储HBase的schema和table元数据
Zookeeper的引入使得HMaster不再是单点故障
- HBase搭建
准备:- jdk安装
- zookeeper安装, 版本 zookeeper-3.4.5-cdh5.14.0, 下载 , zookeeper搭建可以看这里, zookeeper搭建
- Hadoop安装,版本 hadoop-2.6.0-cdh5.14.0, 下载
- 下载依赖包, 版本hbase-1.2.0-cdh5.14.0, 下载
- 节点分布
安装:
安装大致步骤,上传依赖包,解压,修改配置文件,分发,然后启动
软件上传目录/home/software
, 软件安装目录/home/office
.
在bdata01机器上,上传安装包,解压.tar -zxvf hbase-1.2.0-cdh5.14.0.tar.gz -C ../office
把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下.这里也可以用软连接的方式,将hdfs-site.xml和core-site.xml 放到hbase/conf下.
进入安装目录,进入hbase的conf目录,修改主要配置文件. 主要配置文件hbase-env.sh, hbase-site.xml, regionservers, backup-masters,
修改 hbase-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_74/
#logs 和 pids 可以不修改,使用默认即可
export HBASE_LOG_DIR=/home/office/hbase-1.2.0-cdh5.14.0/logs
export HBASE_PID_DIR=/home/office/hbase-1.2.0-cdh5.14.0/pids
# 这里的意思是使用外部zookeeper
export HBASE_MANAGES_ZK=false
修改 修改 hbase-site.xml
<configuration>
<!-- 指定ZooKeeper集群位置 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>bdata01,bdata02,bdata03</value>
</property>
<!-- Zookeeper写数据目录,与ZooKeeper集群上配置相一致 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/office/zookeeper-3.4.5-cdh5.14.0/zkdata</value>
</property>
<!-- Zookeeper的端口号 -->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<!-- RegionServers共享目录 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://bdata01:8020/hbase</value>
</property>
<!-- 开启分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定Hbase的master的位置 -->
<property>
<name>hbase.master</name>
<value>hdfs://bdata01:60000</value>
</property>
<!-- 使用本地文件系统设置为false,使用hdfs设置为true -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>true</value>
</property>
</configuration>
修改regionservers文件
bdata03
bdata04
修改 backup-masters来指定备用的主节点
bdata02
分发,将hbase分发到bdata02, bdata03, bdata04.
[root@bdata01 office ]$ scp -r hbase-1.2.0-cdh5.14.0/ bdata02:$PWD
[root@bdata01 office ]$ scp -r hbase-1.2.0-cdh5.14.0/ bdata03:$PWD
[root@bdata01 office ]$ scp -r hbase-1.2.0-cdh5.14.0/ bdata04:$PWD
分发完成后启动,在bdata01机器上启动hbasebin/start-hbase.sh
, 注意,在启动hbase之前,一定要先启动zookeeper和hadoop.
通过浏览器访问hbase管理页面,cdh5.14.0 hbase访问端口60010.
HBase搭建完成.