1:下载CDH版本的Hbase
http://archive.cloudera.com/cdh5/cdh/5/
2:解压
[rachel@bigdata-pro01 softwares]$ chmod u+x hbase-0.98.6-cdh5.3.0.tar.gz
[rachel@bigdata-pro01 softwares]$ tar -zxf hbase-0.98.6-cdh5.3.0.tar.gz -C /opt/modules/
3:HBase的架构体系
HBase的数据存储落地是在HDFS上,可以无限增加datanode节点来存储数据
Hbase也是依赖于zookeeper,只是在启动HBase的时候,有一个服务包含了zookeeper,我忘记是哪个服务了,好像是RegionServer.
RegionServer管理Regin
Region相当于一个表里面的一个分区,
master管理RegionServer服务。
RegionServer会心跳发送状态,和其下管理的region情况
在regionserver启动的时候,会把自己的状态信息和管理的region的情况
实时注册到zookeeper上。
Master可以通过zookeeper获取存储在zookeeper上的信息
也可以Regionserver主动心跳报告自己的情况。
对于Hbase不存在单点故障,
需要通过zookeeper的选举机制,选举出一个master来对外提供服务。
基本上的Regionserver和datanode在部署的时候基本上是在同一台机器上
4:配置
hbase-env.sh
JAVA_HOME=/opt/modules/jdk1.7.0_67
#To point HBase at an existing ZooKeeper cluster, one that is not managed by HBase,
#set HBASE_MANAGES_ZK in conf/hbase-env.sh to false
export HBASE_MANAGES_ZK=false
hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://bigdata-pro01.rachel.com:8020/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>bigdata-pro01.rachel.com,bigdata-senior01.rachel.com,bigdata-senior02.rachel.com</value>
</property>
regionservers文件
bigdata-pro01.rachel.com
bigdata-senior01.rachel.com
bigdata-senior02.rachel.com
5:启动服务,依赖于HDFS和zookeeper,需要事先启动HDFS和zookeeper的服务
[rachel@bigdata-pro01 bin]$ ./hbase-daemon.sh start master
[rachel@bigdata-pro01 bin]$ ./hbase-daemon.sh start regionserver
6:验证是否启动,可以访问Master服务所在机器的60010端口
7:配置Master backup(可以去官网看配置)
conf下创建backup-master文件,内容:
[rachel@bigdata-pro01 conf]$ touch backup-masters
[rachel@bigdata-pro01 conf]$ vim backup-masters
bigdata-senior01.rachel.com
[rachel@bigdata-pro01 bin]$ ./start-hbase.sh
8:出现的问题
![](/qrcode.jpg)
由于各个机器之间的时间不同步,而linux没有联网,导致各个机器之间的时间不同步
出现错误如下:
org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: Server bigdata-senior02.rachel.com,60020,1536740861511 has be
en rejected; Reported time is too far out of sync with master. Time difference of 959909ms > max allowed of 30000ms
emmm,最好不要去修改配置文件,我改了之后好像导致zookeeper启动不起来了。
最好的方法就是同步时间。
如果不是生产环境,可以用命令
[rachel@bigdata-senior02 data]$ sudo date -s "2018-09-13 16:51:00"
Thu Sep 13 16:51:00 EDT 2018
在各个机器上运行。
如果是生产环境需要指定一个主机作为ntp服务的主节点。。。(以后再详细说这块吧)