1

我正在使用 HBase 的默认配置。每个区域服务器都有很多区域。

我发现我可以配置区域的最大大小 - 例如不是 256MB,而是 4GB。所以我添加了以下配置并重新启动集群:

<property>
    <name>hbase.hregion.max.filesize</name>
    <value>4294967296</value>
</property>

然后我执行了major_compaction - 但什么也没发生。

如何强制 HBase 合并 hfile 以尊重现有数据的此配置?

4

2 回答 2

2

压缩合并 StoreFiles,它不合并区域。

您可以使用以下方法手动合并现有区域:

$ bin/hbase org.apache.hbase.util.Merge <tablename> <region1> <region2>

有一些可用的工具和补丁可以使隐式区域合并成为可能。

看看这里:https ://issues.apache.org/jira/browse/HBASE-7846

于 2013-03-01T12:39:22.873 回答
0

这里有几件事,我认为您应该至少重新启动 Hmaster 以获取更改的值。我还设置了字节值,在你的情况下它应该是 4294967296 (4GB)。我认为在这些更改之后,Hbase 应该手动拆分大于指定 max.filesize 的区域。否则,您也可以手动执行major_compact 甚至拆分。

于 2013-01-10T00:52:33.493 回答