如何避免Hbase刷新小文件

问题描述 投票:0回答:1

我们的 HBase 集群(版本 2.1.10)生成的 HFile 过小, 通常低于 10 MB,有时低至 2 KB。

尽管将

hbase.hregion.memstore.flush.size
配置为 256M 和 调整
hbase.hregion.percolumnfamilyflush.size.lower.bound.min
等参数以匹配冲洗尺寸。此外,我们还启用了
BASIC
内存压缩。

根本原因似乎是 MemStoreSizing 的全局性质。该变量在区域内的所有列族之间共享,当总内存存储大小超过阈值时,会触发区域范围内的刷新。

因此,即使只有一个列族正在主动积累数据,整个区域也会被刷新,可能会导致创建小 HFile。

我们寻求有关策略的指导,以防止生成小 HFile 并在多列族 HBase 表中启用每列族刷新。

performance apache hbase
1个回答
0
投票

为了避免在 HBase 中创建小文件,请增加 MemStore 刷新大小 (hbase.regionserver.memstore.flush.size) 和写入缓冲区大小 (hbase.regionserver.write.buffer.size) 以延迟刷新。调整压缩设置,例如存储文件压缩阈值 (hbase.regionserver.storefile.compaction.threshold),以减少频繁的次要压缩。增加blockingStoreFileSize (hbase.hstore.blockingStoreFileSize) 来控制HFile 大小。考虑使用批量加载来导入大量数据。此外,通过调整区域拆分大小 (hbase.regionserver.region.split.size) 来优化区域大小。定期监控 HBase 指标并调整配置以实现高效的刷新和文件管理。

© www.soinside.com 2019 - 2024. All rights reserved.