HBase| 青训营笔记

79 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第6天

1.   什么是 HBase

HBase是一个开源的NoSQL分布式数据库,参考Google BigTable 的设计,对稀疏表提供更高的存储空间使用率和读写效率。

HBase采用存储计算分离架构,存储层基于HDFS存储数据,提供容错机制和高可靠性;计算层提供灵活快速的水平扩展、负载均衡和故障恢复能力。

HBase提供强─致语义,在CAP理论中属于CP系统。

HBase的特性:Consistency,Availability,Partition Tolerance。

 

2.  HBase 数据模型

HBase 以列族(column family)为单位存储数据,以行键(rowkey)索引数据。

列族需要在使用前预先创建,列名不需要预先声明,因此支持半结构化数据模型。HBase支持保留多个版本的数据,(行键+列族+列名+版本号)定位一个具体的值。

行键(rowkey):用于唯一索引一行数据的“主键”,以字典序组织。一行可以包含多个列族。

列族(column family):用于组织—系列列名,一个列族可以包含任意多个列名。每个列族的数据物理上相互独立地存储,以支持按列读取部分数据。

列名(column qualifier):用于定义到一个具体的列,一个列名可以包含多个版本的数据。不需要预先定义列名,以支持半结构化的数据模型。

版本号(version):用于标识一个列内多个不同版本的数据,每个版本号对应一个值。

 

3. 使用场景

l  “近在线"的海量分布式KV/宽表存储,数据量级可达到PB级以上

l  写密集型、高吞吐应用,可接受—定程度的时延抖动

l  字典序主键索引、批量顺序扫描多行数据的场景

l  Hadoop大数据生态友好兼容

l  半结构化数据模型,行列稀疏的数据分布,动态增减列名

l  敏捷平滑的水平扩展能力,快速响应数据体量、流量变化