一、HBase基本概念
1、模型的逻辑实体
包括6大概念,要始终牢记,基本描述了hbase的基本特点
- 表(table):组织数据。
- 行(row):表里数据按行存储,行键是唯一标示。行键没有数据类型,总是视为字节数组byte[]。
- 列族(column family):行里的数据按列族分组,列族同时确定了物理存放,列族的设计很重要。
- 列限定符(column qualifier):简称列。列族里的数据通过列定位。列不必提前定义。【无模式db】
- 单元(cell):行键、列族、列3个指标确定一个单元,用来存放单元值。单元值没有数据类型,总是视为byte[]。【无模式db】
- 时间版本(version):值可以保存多个版本,用时间戳标识。默认有3个版本。
rdbms中是二维坐标,行+列;hbase中是4维坐标,行+列族+列+版本
hbase是key-value数据库库。
2、HBase的存储模型:
- Region:是表按行键水平分割的存储单位,相当于rdbms的分区。在RegionServer上,是逻辑单元,是hbase分布的最小单位。
- Store:每个列族对应一个store。Region包含多个列族,即Region包含多个Store。
- StoreFile:每个store包含memStore和Stofile,MemStore是写缓存,写满后内存刷出就是StoreFile。 HFile:HFile是HBase数据存储在Hadoop上才有的概念,HBase底层存储结构可以不是Hadoop,上面引进StoreFile就是由于这个原因对底层存储文件做的一次封装。HFile通过hbase的dfsClient写入到hdfs。
3、功能组件
- Client:访问hbase;缓存Cache。
- Zookeeper:确保唯一master;保存region地址;监控regionserver;存储hbase的元数据。
- Master:分配region;发现失效的regionserver;管理用户对table的操作。
- RegionServer:维护region;处理对region的IO;切分过大region。
二、hbase特点
分布式、列式、nosql数据库
三、hbase的适应场景
1)存储海量数据
2)高写入
3)大数据的高效随即访问
4)高扩展性scale gracefully with data
5)结构或半结构化数据
6)不需要rdbms的全部特性,如跨表、跨行的事务;join?