HBase的基本介绍
Hbase 是建立在hdfs之上的一个数据库,不支持join等SQL复杂操作.支持的数据类型:byte[],依靠横向扩展
一个表可以有上十亿行,上百万列。
面向列(族)的存储和权限控制
对于为空(null)的列,并不占用存储空间,是一个稀疏表。
稀疏的理解
HBASE的适用场景
海量数据、精确查询、快速返回
海量数据:指的是数据量的背景
精确查询:业务场景
快速返回:是业务对时效性的要求
Hbase和Hadoop之间的关系
HDFS
海量数据存储,适合一次性扫描大量数据。
适合一次写入多次读取
不适合频繁更新的数据
HBASE
不适合一次性扫描大量数据。适用一次扫描少量数据。
适合多次写入多次读取
hbase
支持数据更新
支持删除数据
Hbase与RDBMS的关系
RDBMS
支持SQL查询
支持事务
支持Join
HBASE
不支持SQL查询
不支持事务
不 支持Join
Hbase特征简要说明
1、 海量存储
Hbase适合存储PB级别的海量数据,在几十到百毫秒内返回数据。
2、列式存储
这里的列式存储其实说的是列族存储
列族理论上可以很多,但实际上建议不要超过6个
3、 极易扩展
处理能力(RegionServer)的扩展,一个是基于存储的 扩展(HDFS)
hbase在最初设计的时候就考虑了扩展性。
4、高并发
这里说的高并发,主要是在并发的情况下,Hbase的单个IO延迟下降并不多
5、稀疏
在列数据为空的情况下,是不会占用存储空间的
hbase的基础架构
1、Client
2 ZOOKEEPER
3 Master 管理者
4 Regionserver 工作者
HBase的底层原理
Client:
访问数据的入口,包含访问hbase的API接口,维护着一些cache来加快对hbase的访问
Zookeeper:
1 zookeeper的选举机制保证任何时候,集群中只有一个master
2 实时监控Region Server的状态,将Region server的上线和下线信息实时通知给Master
3 存储Hbase的schema,
4 存贮所有Region的寻址入口
Master职责
1 为Region server分配region
2 负责region server的负载均衡
3 发现失效的region server并重新分配其上的region
4 处理schema更新请求
说明:Hmaster短时间下线,hbase集群依然可用,长时间不行。
Region server的作用
1、 Region server维护Master分配给它的region,处理 对这些region的IO请求
2、Region server负责切分在运行过程中变得过大的region
HBase的表数据模型
Row Key
最大长度是 64KB,完全可以自行设计。Hbase会对表中的数据按照rowkey排序(字典序)
row的设计是最有技术含量的工作
列族Column Family
列族是表的schema的一部分&