<返回更多

聊聊HBase分布式数据库设计那些事

2020-10-29    
加入收藏

数据模型

传统的关系型数据库,一张表(table)由行(row)和列(column)组成。相对Hbase分布式数据库却有所差别,可以把Hbase中的表理解成不同维度Map的集合。包含以下主要概念。

概念视图

上面数据模型介绍的概念通过以下表格可以帮助理解。

聊聊HBase分布式数据库设计那些事

 

将以上表格转换成json格式

聊聊HBase分布式数据库设计那些事

 

通过以上图示,可以了解:

一个row key具有多个版本的数据,不同版本通过不同的timestamp定义。

一个column family可以有多个column qualifier。

row key下的column family可以为空。

一个row key多版本数据按版本号时间倒序排列。当查询条件不带版本号时,以倒叙顺序依次从上往下查找。如:rowkey="com.cnn.www",列族=contents:html,返回值t6版本的值。

NOSQL特性

hbase是一个nosql数据库,相较于RDBMS,它不支持传统关系型数据库的typed columns(列类型), secondary indexes(二级索引), triggers(触发器), and advanced query languages(高级查询语言)等特性。它的长处在数据存储,是真正意义上的分布式数据库。通过添加RegionServer机器,即可实现hbase的线性和模块化扩展。

Hbase具有以下特性:

表物理存储模型

聊聊HBase分布式数据库设计那些事

 

HBase表中的数据被拆分成不同的区域块(Region),每个区域块按一定规则分发到集群中不同的RegionServer上。通过这种把大表中数据打散到集群节点存储的方式来实现大数据宽表的线性扩展能力。

架构

聊聊HBase分布式数据库设计那些事

 

上图Hbase总体架构图,包含了HMaster、HRegionServer、HRegion、Hlog、Store、MEMStore等逻辑结构划分。HBase以HDFS作为底层存储框架,通过DFS Client进行文件操作。HMaster负责把HRegion分配给HRegionServer。一个HRegionServer包含多个HRegion。HRegionServer中的多个Region共享一个HLog,HLog用来做灾备恢复。一个Region由一个或多个store组成,一个store对应表中的一个列族,每个store包含memStore和其对应的一个或多个StoreFile。StoreFile是HFile的轻量封装,HFile是HDFS中的文件存储格式,MemStore放在内存中。

小结

本文简单介绍了Hbase分布式数据的数据模型、概念视图、NOSQL特性、整体架构内容。对Hbase的一些关键概念有了初步认识,从整体上对框架有了全局的了解。

希望本文对初学HBase的读者有所帮助,若有遗漏之处欢迎留言讨论。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>