我有一个场景,我们必须定期地将hfiles加载到hbase表中。
每次运行的hfile大小可能在每个区域50到150 mb之间。这些负荷可能是12次一天,以及在某些情况下每15分钟。
在进行测试时,我发现即使在区域中立即有3个以上的文件,也不会触发轻微的压缩。这可能会导致问题,因为有许多文件为同一行键保存行。
我已经看到在10000秒(大约2小时45分钟)后被唤醒的压缩线程正在开始压缩并将压缩任务放入队列中。
是否有任何配置可以告诉我们,一旦批量加载(completebulkload)写入3个或3个以上的hfiles,不管hfile的大小,就触发轻微压缩?
hbase版本:hbase 1.1.2.2.6.5.4-1
Configuration:
hbase.hstore.compaction.max = 10
hbase.hstore.compactionThreshold = 3
hbase.server.thread.wakefrequency = 10000
1条答案
按热度按时间46qrfjad1#
在查看API时,我发现可以在hbase表级别异步调用次要或主要压缩。
如果批量加载更频繁地推送冗余数据并使用恒定区域拆分大小策略,则可以使用hbase管理api根据避免拆分的需要调用压缩。
下面是一个用java实现的示例代码: