HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库;主要用来存储非结构化数据和半结构化的松散数据;
HBase与传统关系型数据库区别:
1、数据类型:结构类型简单,未经解释的字符串;
2、数据操作:不存在复杂的表与表之间的关系;(无多表连接等)
3、存储模式:列式存储;(适合分析型,不适合事务型)
4、数据索引:只有行键,及其衍生品;
5、数据维护:新建而非替代原文件;
6、可伸缩性:灵活水平扩展;
HBase访问接口:Native Java API;HBase Shell;ThriftGateway;REST Gateway;Pig;Hive等;
HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳;
列族支持动态扩展;同一列族数据存放在一起;
有三个组件:
1、库函数:客户端使用;
2、Master主服务器:负责管理和维护表分区信息,分配Region,负载均衡等;
3、若干Region服务器:存储和维护Region,处理读写请求;(减小Master压力)
三级寻址:
Zookeeper文件:记录了-ROOT-表的位置信息;
ROOT表:记录了.META.表的Region位置信息,-ROOT-表只能有一个Region。通过-ROOT-表,就可以访问.META.表中的数据;
META表:记录了用户数据表的Region位置信息,.META.表可以有多个Region,保存了HBase中所有用户数据表的Region位置信息;