Hbase是一种分布式nosql数据库系统,能实时操作数据:增删改查
一、hbase的特性
1、hbase数据的最终持久化存储是基于hsfs文件系统,存储容量几乎无限,可以随时在线扩容2、hbase的数据增删改查功能模块是分布式系统3、nosql数据库,表结构
二、hbase工作机制
1、hbase工作机制示意图
2、hbase工作机制详细解析
a. habse的整体工作机制是接受客户端发来的请求命令,从hdfs中读取表文件信息返回给客户端;
b. 每个hbase服务器负责表文件中对应region区域,hdfs上表文件的存储也是分为每个region单独存储,每个region中又分为多个列族存储;
c. hbase集群中有两种角色,regionserver和master,
regionserver负责响应客户端请求,读取表文件;
master负责监控regionserver的状态,以便及时处理掉线的regionserver,保证hbase集群正常运行;当一个region挂掉时,master会及时监控到,这里利用了zookeeper管理regionserver状态信息
当一个master挂掉时,不会影响客户端查数据,但如果此时regionserver挂掉,master又不能及时监控到,便会影响数据查询;解决方法就是再设置一台master,一台active状态,一台standby状态用作备用,当active的master挂掉,standby的master将会变为active状态,监控regionserver。
d. master和zookeeper就组成了高可用。
三、Hbase的安装配置
1、上传文件、解压
安装包:链接:https://pan.baidu.com/s/1VqkS2OI7Y0EngxKCOGwFyg 密码:ia12
解压:tar -zxvf hbase-1.2.6-bin.tar.gz -C /usr/local
2、把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下
3、修改hbase-env.sh
#修改JAVA_HOME的路径
export JAVA_HOME=/usr/java/jdk1.7.0_55
#告诉hbase使用外部的zk
export HBASE_MANAGES_ZK=false
4、vi hbase-site.xml
<configuration>
<!-- 指定hbase在HDFS上存储的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop01:9000/hbase</value>
</property>
<!-- 指定hbase是分布式的 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定zk的地址,多个用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
</configuration>
5、vi regionservers
hadoop01
hadoop02
hadoop03
6、 配置环境变量
vi /etc/profile
export HBASE_HOME=/usr/local/hbase-1.2.6/
export PATH=$PATH:$HBASE_HOME/bin
7、分发文件
scp -r /usr/local/hbase-1.2.6/ hadoop02:/usr/local
scp -r /usr/local/hbase-1.2.6/ hadoop03:/usr/local
scp -r /etc/profile hadoop02:/etc
scp -r /etc/profile hadoop03:/etc
8、时间同步
yum install -y ntp
ntpdate cn.pool.ntp.org
9、启动Hbase
分别启动zookeeper
./zkServer.sh start
启动hadoop集群
start-dfs.sh
启动hbase,在主节点上运行:
start-hbase.sh
10、通过浏览器访问hbase管理页面
hadoop01:16010
7.为保证集群的可靠性,要启动多个HMaster (备用master)
hbase-daemon.sh start master