美文网首页
HBase中的StoreFile什么时间合并__学习笔记

HBase中的StoreFile什么时间合并__学习笔记

作者: 夜希辰 | 来源:发表于2021-03-01 23:55 被阅读0次

前言:图片是HBase架构图,建议结合架构图,理解StoreFile 的合并

概述

HBase 根据合并规模将 Compaction 分为了两类:MinorCompaction 和 MajorCompaction。

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

Major Compaction:会将一个 Store 下的所有的 HFile 合并成一个大 HFile,并且 会清理掉过期和删除的数据。
另外,一般情况下,Major Compaction时间会持续比较长,整个过程会消耗大量系统资源,对上层业务有比较大的影响。因此线上业务都会将关闭自动触发Major Compaction功能,改为手动在业务低峰期触发。默认Major Compaction的合并周期是7天

一、合并storefile的原因

由于memstore每次刷写都会生成一个新的HFile,且同一个字段的不同版本(timestamp)和不同类型(Put/Delete)有可能会分布在不同的HFile中,因此查询时需要遍历所有的HFile。为了减少 HFile 的个数,以及清理掉过期和删除的数据,会进行 StoreFile Compaction。
Hadoop不擅长处理小文件,文件越大性能越好。

二、什么时候合并

1、一个列簇中storefile大于等于3个的时候就会自动合并(Major Compaction)
2、7天的时候会自动合并

但是在生产中,建议把自动合并关掉。因为Major Compaction时间会持续比较长,整个过程会消耗大量系统资源,对上层业务有比较大的影响


3、HBase shell 手动合并某个文件
compact '表名'

参考文章:HBase篇(6)-HFile合并过程详解

相关文章

网友评论

      本文标题:HBase中的StoreFile什么时间合并__学习笔记

      本文链接:https://www.haomeiwen.com/subject/flgzfltx.html