hbase split

参考: http://blog.csdn.net/jdplus/article/details/47273983html

       http://www.tuicool.com/articles/A3uQreYshell

 

提升hbase的性能,最重要的方法是预分区和行键的离散度。apache

hase 存储数据,根据行键进行排序。有三种排序方式:api

1 HexStringSplit,  使用十六进制字符比较排序数组

  对应的建表命令:oop

  hbase org.apache.hadoop.hbase.util.RegionSplitter test_table HexStringSplit -c 3 -f tags性能

使用hbase shell:ui

create 'test_table3', { NAME => 'tags', BLOCKSIZE => '1024'},{ NUMREGIONS =>2, SPLITALGO => 'HexStringSplit' }.net

 适合的rowkey类型:  以十六进制字符串做为行键rowkey或者行键rowkey的前缀是十六进制字符串orm

UniformSplit, 使用原始byte值排序,即便用ASCII中的256个字符进行比较进行比较的。

  对应的建表命令:

  hbase org.apache.hadoop.hbase.util.RegionSplitter test_table1 UniformSplit -c 3 -f tags

  适合的rowkey类型:rowkey是随机的字节数组

  参考: http://www.tuicool.com/articles/A3uQreY

    疑问: 即便将数字的hash反转,仍然是数字,rowkey的分布只在数字的那几块region,仍然是不均匀的。待验证。

3 SplitAlgorithm: 自定义分割

相关文章
相关标签/搜索