HBase 预拆分和最大区域大小
HBase pre-splitting and maximum region size
我无法找到问题的答案:
我想预拆分 HBase table 例如在5个地区。我已将配置中的最大文件大小设置为 10GB。 (当然只是例子)。如果我将 table 填满我的所有 5 个区域怎么办? HBase 会为此创建第 6 个区域吗?
我发现它会自动分成 2 个区域,但我需要确定和一些解释。
感谢大家的回答。
我们先讨论一下pre-splitting。
仅当我们知道键的分布时才推荐,否则如果数据中存在任何偏差,pre-splitting 可能 运行 进入 un-even 数据加载。
这是 Hbase 的一般性质,用于 tables 的自动和可配置分片。
引用自 Cloudera Hbase 站点:-
无论是否使用pre-splitting,当一个区域达到一定上限后,会自动分割成两个区域。
您可以通过设置配置“hbase.regionserver.region.split.policy”或配置table描述符来配置要使用的默认拆分策略。我们还可以实现自己的自定义拆分策略,并在 table 创建时插入,或者通过修改现有的 table:
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/
我无法找到问题的答案:
我想预拆分 HBase table 例如在5个地区。我已将配置中的最大文件大小设置为 10GB。 (当然只是例子)。如果我将 table 填满我的所有 5 个区域怎么办? HBase 会为此创建第 6 个区域吗?
我发现它会自动分成 2 个区域,但我需要确定和一些解释。
感谢大家的回答。
我们先讨论一下pre-splitting。
仅当我们知道键的分布时才推荐,否则如果数据中存在任何偏差,pre-splitting 可能 运行 进入 un-even 数据加载。
这是 Hbase 的一般性质,用于 tables 的自动和可配置分片。
引用自 Cloudera Hbase 站点:-
无论是否使用pre-splitting,当一个区域达到一定上限后,会自动分割成两个区域。
您可以通过设置配置“hbase.regionserver.region.split.policy”或配置table描述符来配置要使用的默认拆分策略。我们还可以实现自己的自定义拆分策略,并在 table 创建时插入,或者通过修改现有的 table:
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/