一、HBASE基础概念
1.HBASE概念
HBASE是一个数据库----可以提供数据的实时随机读写。HBASE与mysql、oralce、db2、sqlserver等关系型数据库不同,它是一个NoSQL数据库(非关系型数据库)
2.HBase特性
- HBase的表模型与关系型数据库的表模型不同:
- HBase的表没有固定的字段定义;
- HBase的表中每行存储的都是一些key-value对
- HBase的表中有列簇的划分,用户可以指定将哪些kv插入哪个列族
- HBase的表在物理存储上,是按照列簇来分割的,不同列簇的数据一定存储在不同的文件中
- HBase的表中的每一行都固定有一个行键,而且每一行的行键在表中不能重复
- HBase中的数据,包含行键,包含key,包含value,都是byte[ ]类型,HBase不负责为用 户维护数据类型
- HBase对事务的支持很差
3.HBASE与RDBMS和NOSQL区别
HBase的表数据存储在HDFS文件系统中。
从而,hbase具备如下特性:存储容量可以线性扩展; 数据存储的安全性可靠性极高!
- hbase的表模型跟mysql之类的关系型数据库的表模型差别巨大
- hbase的表模型中有:行的概念;但没有字段的概念
- 行中存的都是key-value对,每行中的key-value对中的key可以是各种各样,每行中的 key-value对的数量也可以是各种各样
4.Hbase表结构
二、HBASE工作机制
1.图示
2.组件说明
Client : hbase客户端
1.包含访问hbase的接口。比如,linux shell,java api。
2.除此之外,它会维护缓存来加速访问hbase的速度。比如region的位置信息。
Zookeeper :
1.监控Hmaster的状态,保证有且仅有一个活跃的Hmaster。达到高可用。
2.它可以存储所有region的寻址入口。如:root表在