一 HBase 预分区
每一个 Region 维护着 StartRowKey 与 EndRowKey ,如果加入的数据符合某个 Region 维护的 RowKey 范围 ,则该数据交给这个 Region 维护。依照这个原则,可以将数据所要投放的分区提前大致规划好,以提高 HBase 的性能。
1- 手动设定预分区
hbase> create 'emp1','info','partition1',SPLITS => ['1','2','3','4']
create ‘表名’,‘列族’,‘分区名’,SPLITS => [‘分’,‘区’,‘参’,‘照’]
代码中的分区会按照字典排序中 “1之前”、“1-2之间”、“2-3之间”、“3-4之间”、“4之后” 划分为 5 个分区,并将这些分区均匀的分布在所有 RegionServer 上。存入数据时,会按照 “RowKey—列族—列” 名称的字典排序将数据放入划分好的相应分区中。
2- 按照文件中设置的规则预分区
创建 splits.txt 文件,内容如下:
aaaaa
bbbbb
ccccc
ddddd
eeeee
然后执行:
hbase> create 'emp2','partition2',SPLITS_FILE => 'splits.txt'
3- 使用 JavaAPI 创建预分区