HBase预分裂和最大区域大小

时间:2018-04-10 05:29:30

标签: hadoop hbase bigdata cloudera-cdh

我在寻找问题的答案时遇到了问题:

我想预先拆分HBase表,例如在5个地区。配置中的最大文件大小我已设置为10GB。 (当然是一个例子)。如果我将所有5个地区填满桌子怎么办? HBase将为此创造第6个区域?

我发现它会自动分成两个区域,但我需要确定并做一些解释。

感谢所有答案。

1 个答案:

答案 0 :(得分:1)

让我们先讨论预分裂。

当我们知道密钥的分布时,它才被推荐,否则如果数据中存在任何偏差,预分割可能会遇到非均匀数据加载。

它是Hbase的一般特性,用于表格的自动和可配置分片。

从Cloudera Hbase网站引用: -

无论是否使用预分割,一旦某个区域达到一定限度,它就会自动分成两个区域。

您可以通过设置配置“hbase.regionserver.region.split.policy”或配置表描述符来配置要使用的默认拆分策略。我们还可以实现自己的自定义拆分策略,并在创建表时插入,或者通过修改现有表来插入:

HTableDescriptor tableDesc = new HTableDescriptor("example-table");
tableDesc.setValue(HTableDescriptor.SPLIT_POLICY, <SplitPolicy.class.getName()>);
//add columns etc
admin.createTable(tableDesc);

有关详情: - https://hortonworks.com/blog/apache-hbase-region-splitting-and-merging/