HBase系列(一)

来源:互联网 发布:淘宝内衣模特 亚男 编辑:程序博客网 时间:2024/05/22 09:42

1 概述


HBase是谷歌BigTable开源实现;

面向列存储的非关系型数据库;

存储海量数据;


2 表的特点


大:一个表可以有数十亿行,上百万列;

面向列:

稀疏:对于null的列,并不占用内存空间,表可以设计的可稀疏;

数据类型单一:存储的都是字符串


3 术语


主键(Row Key):数据的主键,主要用来查询;

列族(Column Family):列的限定符;在创建表的时候必须申明;

时间戳(Timestamp):数据在添加的时候自动获取系统当前时间添加进来;

单元(Cell):数据的存储单元,每一个Cell中保存同一份数据的多个版本,按照时间戳倒序排列;


4 HBase逻辑模型


                     


5 HBase物理模型

                   


6 架构图   

               

                          


6.1 Client

客户端


6.2 HMaster


管理用户对表的操作,而不是表的内容的操作;

管理HRegionServer的 负载均衡,调整Region分布;

在Region Split后,负责新的Region的分配;

HRegion Server宕机后,转移失效的HRegion Server上的Region迁移;

HMaster失效会影响元数据的修改,表数据的读写不影响;


6.3 HResion Server


维护HRegion并向HDFS中写入数据;

当表的大小超过设置值大小,split HRegion;


6.4 zookeeper


HBase元数据保存在zookeeper中;

解决HBase单点故障;

HMaster和HRegion Server 启动会向zookeeper注册;

在zookeeper的/hbase目录下存储相关数据;

               [zk: localhost:2181(CONNECTED) 0] ls /hbase


6.5 客户端定位表

从zookeeper中读取.META.表信息获取table的位置;

             [zk: localhost:2181(CONNECTED) 3] ls /hbase/meta-region-server


6.6 容错性


zookeeper是一个高可靠无单点故障;

HMaster宕机,zookeeper会选举新的HMaster;

HRegion Server定时向zookeeper发送心跳,若出现故障,HMaster会将失效HRegion server上的HRegion转移






0 0