【HBase】(6)-Compact合并StoreFile流程

简介: 【HBase】(6)-Compact合并StoreFile流程

简 介:HBase是谷歌BigData论文的一个代码实现,在大数据处理领域应用广泛。本文意在记录自己近期学习过程中的所学所得,如有错误,欢迎大家指正。

 

关键词:大数据组件、HBase、NoSQL

一、Compact合并StoreFile文件

我们每次put一条数据,都会将其写入到MemStore中,然后达到一定条件后,将其flush到HDFS中,久而久之这样就会产生过多的小文件,我们就需要定期或者按照一定约束进行合并,产生的多个StoreFile如下图:

此时可以看到有两个HFile文件,对应着MemStore刷写两次到HDFS中。

由于我们每个字段的不同版本可能在不同的HFile中,当我们查询时就要去遍历所有的HFile,拿到最新的data,这样效率就会较低,所以需要减少HFile的个数,清理掉过期不生效的数据,进行StoreFile Compaction合并。

从上图可以看出,合并分为两种,一种是Minor Compaction,另外一种是Major Compaction。

Minor Compaction:它会将临近的若干个较小的HFile合并成一个较大的HFile,但是它并不会清理过期和删除的数据。

Major Compaction:会将一个Store下的所有的HFile合并成一个大HFile,并且会清理掉过期和删除的数据。

这些定期合并以及相关的配置可以在配置文件中进行修改。

下面测试一下合并文件。

上图我们的HFile文件中有两个,我们尝试put两条新的数据,然后flush到磁盘中。

现在可以发现HDFS上存在4个HFile文件,我们用命令手动合并一下。

现在会比之前多一个文件,就是刚才的4个文件合并后的,但是并没有马上删除其它4个文件,可能是延迟或者是一种安全措施,并不会马上删除,过了一段时间还是会被删除的。


相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
6月前
|
分布式数据库 Hbase
HBase读取与写入流程
HBase读取与写入流程
66 0
|
存储 分布式计算 Hadoop
分布式数据库HBase的重要机制和原理的读/写流程
HBase是一个分布式数据库系统,基于Google的BigTable和Apache Hadoop的HDFS构建。它提供了一个高性能、可扩展的数据库平台,适用于大规模的数据存储和处理。在阿里云开发者社区中,很多开发者都会使用HBase进行数据存储和处理。本文将介绍HBase的读/写流程。
148 0
|
存储 缓存 NoSQL
【HBase】(5)-HBase读数据流程
【HBase】(5)-HBase读数据流程
135 0
【HBase】(5)-HBase读数据流程
|
NoSQL 大数据 分布式数据库
【HBase】(4)-HBase写数据流程
【HBase】(4)-HBase写数据流程
153 0
【HBase】(4)-HBase写数据流程
|
缓存 分布式数据库 Hbase
【HBase】(六)详解 HBase 的读、写流程(面试重点)
【HBase】(六)详解 HBase 的读、写流程(面试重点)
260 0
【HBase】(六)详解 HBase 的读、写流程(面试重点)
|
分布式数据库 Hbase
|
分布式计算 分布式数据库 Hbase
Hbase compact以及split跟踪
为了准确了解HBASE内部工作原理,我们需要做一些测试,在大量数据插入的情况下,HBASE内部到底有什么表现? 比如插入速度, hstore compact,split等相关活动,了解了这些才能更好的维护HBASE系统本身。 此次测试会有几轮,所以测试到哪里就写到哪里,我随便找了一张大概120W来的表,我会写一个mapreduce任务,来读取这张表,再写入另外一个测试表: test2, 没有选择更大的表是因为毕竟整个拷贝是需要时间,通常20分钟-30分钟,太大的表,不太利于跟踪。 拷贝过程,HBASE会针对此表有相关的活动日志,依据日志,我们来看看HBASE到底在干什么。 测试开始,
226 0
|
分布式数据库 Hbase 存储
HBase源码分析之HRegion上compact流程分析(一)
        首先来想两个问题:1、何谓compact?2、它产生的背景是怎样的?         compact是指HBase表中HRegion上某个Column Family下,部分或全部HFiles的合并。
1046 1
|
分布式数据库 Hbase