前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据入门:Hbase存储原理解析

大数据入门:Hbase存储原理解析

作者头像
成都加米谷大数据
修改2020-12-03 18:06:22
1K0
修改2020-12-03 18:06:22
举报
文章被收录于专栏:大数据开发大数据开发

在大数据储存任务当中,针对于具备“5V”特征的大规模数据集,数据存储从传统的关系型数据库开始转向非关系型数据库(NOSQL),而NOSQL数据库当中,Hbase无疑是非常经典的一个作品。今天的大数据入门分享,我们就来讲讲Hbase存储原理。

Hbase生于Hadoop生态,与Hadoop生态紧密相关,而Hbase要完成存储,也需要依赖于Hadoop生态当中的其他组件,比如HDFS分布式文件系统、Zookeeper分布式协调服务等。

大数据培训:Hbase存储原理解析
大数据培训:Hbase存储原理解析

要了解Hbase的存储原理,我们先从Hbase的数据结构开始讲起。

Hbase的数据结构

Hbase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳。

1、Rowkey

Rowkey是用来检索记录的主键,访问Hbase table中的行,数据会按照Rowkey的字典序排序进行存储,利用这个特性,把经常一起读取的行存储在一起。

2、Column Family

列族,Hbase表中的每个列,都会属于某个列族,列族是表的结构的一部分,列族在建表的时候必须要指定。列名都是以列族做为前缀。在创建表的时候需要指定列族,列族可以指定多个。

3、Cell

由Rowkey,column Family:column,version唯一确定的单元,cell中的数据是没有类型的,全部都是字节的形式存储

4、Time Stamp

时间戳,每个cell都保存着同一份数据的多个版本,版本通过时间戳来索引。时间戳可以由系统生成,也可以自己指定。每个cell中,不同版本的数据按照时间倒序排列,即最新的数据在最前面,通过时间戳不同来确定版本的。

大数据培训:Hbase存储原理解析
大数据培训:Hbase存储原理解析

Hbase存储模型

在Hbase当中,Region是HBase分布式存储的基本单位,其本质上是一种水平切分单位,可以理解为数据的分片;而Column Family(列族)则是垂直切分的单位,可理解为一种列的分组。

具体来说——

一个Region包含多个Store,一个store对应一个CF;

Store包括位于内存中的Memstore和多个持久化的Storefile;

写操作先写入Memstore,当Memstore中的数据大小达到某个阈值后会Flush到一个单独的Storefile;

当Storefile文件的数量增长到一定阈值后,系统会进行合并,形成更大的Storefile(Compaction);

当一个Region所有Storefile的大小总和超过一定阈值后,会把当前的Region分割为两个(分裂);

Master自动检测RegionServer上Region的分配情况,自动进行均衡迁移;

客户端检索数据,优先从Memstore查询,然后再查询Storefile。

大数据培训:Hbase存储原理解析
大数据培训:Hbase存储原理解析

Hbase存储原理

HBase在存储上是基于LSM树实现的,与传统的B/B+树原理不同的是,LSM树非常适用于写入要求非常高的场景。

LSM的原理,就是将一个大的B(B+)树拆分成N棵小树,数据首先写入内存中(有序),随着数据写入越来越多,内存中的数据会被flush到磁盘中形成一个文件;在读取数据时,则需要合并磁盘中历史数据和内存中最近修改的操作后返回。

由于数据是顺序写入的,因此LSM的写入性能非常高,但读取时可能会访问较多的磁盘文件,性能较差。为了缓解读性能低下的问题,LSM树会定时将磁盘中的多个文件(小树)进行合并,以优化读性能。

在HBase的实现中,内存中的数据则是对应于MemStore,而磁盘中的数据则对应于StoreFile(HFile实现)。当MemStore写满后会Flush到一个HFile中。随着HFile文件的不断增多,Region的读性能就会受到影响(IOPS增加)。因此HBase的Region Server会定期进行Compaction操作,将多个HFile合并为一个大的有序的HFile。HBase中运行的Compaction动作有两种:

Minor Compaction,列族中小范围的HFile文件合并,一般较快,占用IO低;

Major Compaction,列族中所有的HFile文件合并,同时清理TTL过期以及延迟删除的数据,该过程会产生大量IO操作,性能影响较大。

关于大数据入门,Hbase存储原理解析,以上就为大家做了基本的介绍了。Hbase在大数据生态当中,尤其是数据存储环节,重要程度非常高,也建议大家去深入地理解和掌握。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术对外提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、presto、Iceberg、Alluxio 等,以快速构建企业级数据湖、数据仓库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档