如何使hbase尊重hregion.max.filesize为现有区域数据

时间:2013-01-09 15:38:29

标签: hbase

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

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

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

然后我执行了major_compaction - 但没有发生任何事情。

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

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

答案 1 :(得分:0)

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