HBase的基本介绍
hbase是建立在hdfs之上的数据库,不支持join等sql复杂操作,支持的数据类型bytes[],依靠横向扩展
一个表可以有上十亿行,上百万列。
面向列(族)的存储和权限控制
对于空(null)的列,并不占用存储空间,是一个稀疏表
稀疏的理解
HBase的适用场景
海量数据,精确查询,快速返回
海量数据:指的是数据量背景
精确查询:业务场景
快速返回:是业务对时效的要求
HBase和Hadoop之间的关系
HDFS
海量数据存储,适合一次性扫描大量数据
适合一次写入多次读写
不适合频繁更新的数据
HBase
不适合一次性扫描大量数据。折佣一次扫描少量数据
适合多次写入,多次读写
habse
支持数据更新
支持删除数据
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常用shell操作
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