【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个文件,可能是延迟或者是一种安全措施,并不会马上删除,过了一段时间还是会被删除的。


目录
相关文章
|
分布式数据库 Hbase
HBase读取与写入流程
HBase读取与写入流程
135 0
|
存储 分布式计算 Hadoop
分布式数据库HBase的重要机制和原理的读/写流程
HBase是一个分布式数据库系统,基于Google的BigTable和Apache Hadoop的HDFS构建。它提供了一个高性能、可扩展的数据库平台,适用于大规模的数据存储和处理。在阿里云开发者社区中,很多开发者都会使用HBase进行数据存储和处理。本文将介绍HBase的读/写流程。
401 0
|
存储 缓存 NoSQL
【HBase】(5)-HBase读数据流程
【HBase】(5)-HBase读数据流程
225 0
【HBase】(5)-HBase读数据流程
|
NoSQL 大数据 分布式数据库
【HBase】(4)-HBase写数据流程
【HBase】(4)-HBase写数据流程
330 0
【HBase】(4)-HBase写数据流程
|
缓存 分布式数据库 Hbase
【HBase】(六)详解 HBase 的读、写流程(面试重点)
【HBase】(六)详解 HBase 的读、写流程(面试重点)
420 0
【HBase】(六)详解 HBase 的读、写流程(面试重点)
|
分布式数据库 Hbase
|
分布式计算 分布式数据库 Hbase
Hbase compact以及split跟踪
为了准确了解HBASE内部工作原理,我们需要做一些测试,在大量数据插入的情况下,HBASE内部到底有什么表现? 比如插入速度, hstore compact,split等相关活动,了解了这些才能更好的维护HBASE系统本身。 此次测试会有几轮,所以测试到哪里就写到哪里,我随便找了一张大概120W来的表,我会写一个mapreduce任务,来读取这张表,再写入另外一个测试表: test2, 没有选择更大的表是因为毕竟整个拷贝是需要时间,通常20分钟-30分钟,太大的表,不太利于跟踪。 拷贝过程,HBASE会针对此表有相关的活动日志,依据日志,我们来看看HBASE到底在干什么。 测试开始,
285 0
|
分布式数据库 Hbase 存储
HBase源码分析之HRegion上compact流程分析(一)
        首先来想两个问题:1、何谓compact?2、它产生的背景是怎样的?         compact是指HBase表中HRegion上某个Column Family下,部分或全部HFiles的合并。
1130 1
|
分布式数据库 Hbase

热门文章

最新文章