HBase简介架构

什么是HBase?

高可靠,高性能,面向列,可伸缩的分布式存储系统【HBase的原型是Google的BigTable论文】

【数十亿行,数百万列的数据存储】

HBase特点?

1.海量存储(PB级别的数据量)

2.列式存储(列簇(ColumnFamily)存储)

3.极易扩展(1.Regionserve的扩展 2. HDFS的扩展 )

4.高并发(多核)【并发:线程并发,同一个cpu内核,抢占资源    /   并行:进程并行,多个cpu同时执行】

5.稀疏存储(在列数据为空的情况下,是不会占用存储空间的)

- HBase的表模型与关系型数据库的表模型不同:
- HBase的表没有固定的字段定义;
- HBase的表中每行存储的都是一些key-value对
- HBase的表中有列簇的划分,用户可以指定将哪些kv插入哪个列族
- HBase的表在物理存储上,是按照列簇来分割的,不同列簇的数据一定存储在不同的文件中
- HBase的表中的每一行都固定有一个行键,而且每一行的行键在表中不能重复
- HBase中的数据,包含行键,包含key,包含value,都是byte[ ]类型,HBase不负责为用户维护数据类

- HBase对事务的支持很差
- HBase基于hadoop : HBase的存储依赖于HDFS

关系型数据库的特点

HBase架构?

HBase简介架构_第1张图片

 

rowkey base_info other_info
1

name:ww

age:20

sex:m

address:China

school:Tsinghua Universit

1.HBase的存储结构

(1)cell【单元格】

- 关系型数据库中的表模型是由行和列构成,交叉点我们称之为Cell(单元格),用于存储字段(Column)的
数据。
- Hbase的表模型与关系型数据库的表模型不同。在单元格上是以 key-value 形式来存储某一个字段
(Column)数据的。
- 版本号(Timestamp)每一个单元格都有自己的版本号。

rowkeyX

name:www  Timestamp:15523598452136

  name:iii Timestamp:15523598452165

(2)rowkey【行键】

- rowkey用于区分那一行记录,
- 在Hbase中的表中的rowkey不能重复

(3)columnFamily【列簇】

1. 列族是是多个列的集合。用于统一管理相似的列数据。
2. Hbase会尽量把同一个列族的列放在同一个服务器上,这样可以提高存取效率,可以批量管理有关联的一
堆列。
3. 一个列族对应一个目录。不同的列族一定存储在不同的文件中
强调:业务需求一般也都是查询相关列信息,而非select *
4. hbase在建表时,指定的是列族,而非列,列族的个数有限制(默认是10个)
5. 列族是由多个列组成,列族的成员可以有上百万个。
6. 列族成员的表示方式:ColFamiName:colName

 

HBase体系架构

1. Client : 
 - 包含访问hbase的接口。比如,linux shell,java api。
 - 它会维护对应的cache来加速访问hbase的速度。META的元数据信息
2. Zookeeper :
 - 监控Hmaster的状态,保证有且仅有一个活跃的Hmaster。达到高可用。
 - 它可以存储所有region的寻址入口。如:root表在哪一台服务器上。
 - 实时监控HregionServer的状态,感知HRegionServer的上下线信息,并实时通知给Hmaster。
 - 存储hbase的部分元数据。存储元数据的统一入口地址
3. HMaster :【负载均衡】
 - 1. 为HRegionServer分配Region(新建表等)。 负责HRegionServer的负载均衡。 负责Region的重新分配
 - HRegionServer宕机之后的Region分配,
 - HRegion裂变:当Region过大之后的拆分)。
 - 2. Hdfs上的垃圾回收。
 - 3. 处理schema的更新请求

 -4.处理元数据的变更

 -5.通过Zookeeper发布自己的位置给客户端
4. RegionServer :
 - 1. 维护HMaster分配给的Region(管理本机的Region)。
 - 2. 处理client对这些region的读写请求,并和HDFS进行交互(Hlog的写入,HFile的读写)。
 - 3. 负责切分在运行过程中逐渐变大的Region。
5. HLog :
 - 1. 对HBase的操作进行记录,使用WAL写数据,优先写入Hlog.
 比如:put操作时,先写日志再写memstore,这样可以防止数据丢失,即使丢失也可以回滚。
6. HRegion :
 - 1. HBase中分布式存储和负载均衡的最小单元,它是表或者表的一部分。
7. Store :
 - 1. 相当于一个列簇
8. Memstore :
 - 1. 内存缓冲区,用于将数据批量刷新到hdfs中,默认大小为128M
9. HStoreFile :
 - 1. 和HFile概念一样,不过是一个逻辑概念。HBase中的数据是以HFile存储在Hdfs上。

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(HBase,hbase)