Hbase

Hbase(Hadoop database:Hbase)概念:
是一个基于Hadoop的分布式,高可靠、高性能、面向列(含义:一个列簇对应一个文件:HFile),可伸缩的数据库。
Hbase不同于一般的关系数据库,他是一个适合于**非结构化或者半结构化数据存储(每天记录数据字段都不确定)**的数据库。另一个不同的是Hbase基于列的而不是基于行的模式。

特点:
1.基于Hadoop HDFS进行分布式存储
2.基于Hadoop MapReduce计算模型处理Hbase中的海量数据**(一个表可存储百亿级别,数万个列,秒级别相应)**
3.基于Zookeeper作为协同工具,保障Hbase正常服务,提供容错机制。

Hbase数据模型(逻辑模型)
一:table
表,用来存储和管理数据。

二:行键(row key)
Hbase中用来标识每一行唯一性的。类似普通数据库的主键(关系数据库中,主键非必须,而Hbase中行键是必须的)。

三:列簇(column family)
在定义表是指定表有哪些列簇(一般定义一个即可,具体根据业务),每个列簇具体有哪些列,由客户端在插入数据时根据需要动态指定,(所以对于Hbase表中的每一行数据来说,每行对应的列数可能不同)

四:时间戳(column family)
插入一行数据时,系统会为每行数据中的每个列族下的每个列中的数据保存一个对应的时间戳属性,用来保存每行中的每一列数据插入,修改等操作的不通版本信息,根据对应的行健+列+时间戳 就可以找回对应的不通版本的数据。

五:Cell(单元格)
Cell是由行,列簇和列的坐标交叉决定的,其是有版本号的,每个Cell的内容是未解析的字节数组。由{row key, column( = +), version}唯一确定Cell。Cell中的数据是没有类型的,全部是字节码的形式存储。
所有数据的存储都是以字节数组方式存储(byte[])

表中的数据按照行键的顺序进行依次存储;

Hbase物理模型(存储结构)
Hbase适合存储海量数据,且能够实现简单的数据库查询秒级响应.
Hbase底层基于MR实现计算(MR不是很慢吗?),基于HDFS存储,为什么能秒级呢?

这和Hbase数据存储得物理模型结构设计有关
从HBase的概念视图来看,每个表是由一行行数据组成的,但是在物理存储上面,它是按照列来保存的(每个列簇对应一个文件:HFile(从HDFS角度读法)==StoreFile (Hbase角度读法),二者指的是一个东西)。

Hbase表中的数据如何存储?
(假如10000行),按照行键范围将表横向拆分成不同的HRegione(假如每1000行一个Regione,则划分为10个Regione), 每个HRegione存储在不同的RegionServer上(可以理解为不同的机器上,每个RegionServer上可以存储多个HRegione)。HBase框架会根据HBase集群中的所有Regione server数量,及每个节点状态,尽可能均匀的分布表中总的Regione到各个Regione server 中。

Regione:可以简单理解为一个表中某些记录数据的描述信息。

每个列族对应一个Store对象(二进制文件,存储数据的基本单元,内含Hbase索引机制,提高查询效率),同一个HFile只能存储一个列族,不能是多个列簇。每个store都有一个MemStore(用来存储修改的数据,暂时放在内存中,当达到阈值大小时,会将所有的storeFile进行Flush到合并后StoreFile文件(每个StoreFile对应一个HFile)中落地)。

Hbase特性:
1.数据海量储存
2.面向列储存

**3.稀疏性:**传统行式存储的数据存在大量的空值的列,需要占用存储空间,造成存储空间的浪费,而HBase为空的列并不占用空间,因此表可以设计的很稀疏;
**4.扩展性:**HBase底层基于HDFS,支持快速扩展,可以随时添加或者减少节点数;
**5.高可靠:**基于Zookeeper的协调服务,能够保证服务的高可用。HBase使用WAL和replication机制,前者保证数据写入是不会因为集群异常而导致写入数据的丢失,后者保证集群出现严重的问题时,数据不会发生丢失和损坏;
6:高性能
底层的LSM数据结构,使得HBase具备非常高的写入性能。RowKey有序排列,主键索引和缓存机制使得HBase具备一定的随机读写性能。

Hbase应用场景:
1:在线业务查询:订单,运单,交易单据,某人的历史多次记录(版本)(实时性要求不是很严格的场景)

2:离线业务的存储分析

Hbase基础架构:
Hbase基础架构

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值