天津市建设工程定额网站,郑州制作网站推荐,flash网站方案,国家企业信用公示信息年报官网注意#xff1a;由于 HBase 版本众多#xff0c;配置表的语法在不同版本上会有差异#xff0c;本文介绍的配置方法是在 1.4.9 版本上测试的#xff0c;使用 HBase 2.0 的版本需要核实并修改相关配置方法#xff01;
有时候#xff0c;出于特殊需要#xff0c;我们希望对…注意由于 HBase 版本众多配置表的语法在不同版本上会有差异本文介绍的配置方法是在 1.4.9 版本上测试的使用 HBase 2.0 的版本需要核实并修改相关配置方法
有时候出于特殊需要我们希望对 HBase 表进行预分区后禁止表再自动 Split具体做法就是设置表的 SPLIT_POLICY 配置项将分裂策略设置为 DisabledRegionSplitPolicy。以下是一个示例建表时进行了预分区设置了 510 个 Region并显式地配置切分策略为 DisabledRegionSplitPolicy
TABLE_NAMEusertable
REGIN_SPLITS510
cat EOF | sudo -u hbase hbase shell
create ${TABLE_NAME}, cf, {METADATA {SPLIT_POLICY org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy}}, {SPLITS (2..${REGIN_SPLITS}).map {|i| user#{1000(i-1)*(9999-1000)/${REGIN_SPLITS}}}}
describe ${TABLE_NAME}
EOF要特别注意的是在旧的 HBase 版本上例如本文使用的 1.4.9必须配置为 METADATA xxx 而不是使用 CONFIGURATION xxx虽然使用后者并不报错但修改是无效的
还有一个特别重要问题测试表明在 EMR 5.23.0 版本上修改 hbase.regionserver.region.split.policy 为 org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy 对单表无效虽然这很诡异但测试下来确实无效似乎在表级别上配置才有效。
总得来说如果能在表级别上单独配置属性是最好的这样产不会影响到其他表。 以下是其他相关的配置和说明
HBase 默认的切分策略是 IncreasingToUpperBoundRegionSplitPolicy该策略在 Region 小于 10 GB 时有一套自己的切分规则超过 10 GB 后才会遵循 ConstantSizeRegionSplitPolicy。
将 hbase.hregion.max.filesize 设为一个极大值并把 hbase.regionserver.region.split.policy 设为 org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy 同样可以实现禁止 split 的目的但是和上面提到的情况一样在 EMR 5.23.0 版本上修改这两项配置对单表无效同样只能修改表级别的属性。