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: 自定義分割

相關文章
相關標籤/搜索