hbase介绍

hbase是一个分布式的、多版本的、面向列的开源数据库
hbase利用hadoop hdfs作为其文件存储系统,提供高可靠性、高性能、列存储、可伸缩、实时读写、适用于非结构化数据存储的数据库系统
hbase利用hadoop mapreduce来处理hbase、中的海量数据
hbase利用zookeeper作为分布式系统服务

特点:
数据量大:一个表可以有上亿行,上百万列(列多时,插入变慢)
面向列:面向列(族)的存储和权限控制,列(族)独立检索
稀疏:对于空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏
多版本:每个cell中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳
无类型:hbase中的数据时字符串,没有类型
强一致性:同一行数据的读写只能在同一台region server上进行
有限查询方式:仅支持三种查询方式(单个rowkey查询,通过rowkey的range查询,全表扫描)
高性能随机读写

体系结构
1.client
包含访问hbase的接口并维护cache来加快对hbase的访问
2.zookeeper
保证任何时候,集群只有一个master
存贮所有region的寻址入口
实时监控region server的上线和下线信息,并实时通知给master
存储hbase的schema和table元数据
3.master
为region server分配region
负责region server的负载均衡
发现失效的region server并重新分配其上的region
管理用户对table的增删改查操作
4.region server
负责维护region ,处理对这些region的io请求
负责切分在运行过程中变得过大的region

hbase操作
1.flush
内存容量有限,需要定期将内存中的数据flush到磁盘
每次flush,每个region的每个column family 都会产生一个hfile
2.compaction
flush操作产生的hfile会越来越多,需要归并来减少hfile的数量,旧数据会被清理
3.split
hfile大小增长到某个阈值就会split,同时把region split成两个region,这两个region被分发到其他不同的region server上
4.scan
hbase原生提供的方法,顺序扫库;当然可以使用mapreduce并发扫库的方法
5.bulk load
快速导入大批量数据的方法

存储模型
1.一个table中的一个region会被随机分配给一个region server
2.region是分布式存储和负载均衡的最小单元

最开始table只有一个region

hfile结构
1.基于block的存储结构
2.block的索引驻留内存

你可能感兴趣的:(云计算+大数据,hbase)