hbase預分區總結

如果知道hbase數據表的key的分佈情況,就可以在建表的時候對hbase進行region的預分區。這樣做的好處是防止大數據量插入的熱點問題,提高數據插入的效率。

步驟:

1.規劃hbase預分區

首先就是要想明白數據的key是如何分佈的,然後規劃一下要分成多少region,每個region的startkey和endkey是多少,然後將規劃的key寫到一個文件中。比如,key的前幾位字符串都是從0001~0010的數字,這樣可以分成10個region,劃分key的文件如下:
0001|
0002|
0003|
0004|
0005|
0006|
0007|
0008|
0009|
爲什麼後面會跟着一個"|",是因爲在ASCII碼中,"|"的值是124,大於所有的數字和字母等符號,當然也可以用“~”(ASCII-126)。分隔文件的第一行爲第一個region的stopkey,每行依次類推,最後一行不僅是倒數第二個region的stopkey,同時也是最後一個region的startkey。也就是說分區文件中填的都是key取值範圍的分隔點,如下圖所示:
2.hbase shell中建分區表,指定分區文件

可以通過指定SPLITS_FILE的值指定分區文件,如果分區信息比較少,也可以直接用SPLITS分區。我們可以通過如下命令建一個分區表,指定第一步中生成的分區文件:
create ‘split_table_test’, ‘cf’, {SPLITS_FILE => ‘region_split_info.txt’}
下面,我們登陸一下master的web頁面Hmaster:60010,查看一下hbase的表信息,找到剛剛新建的預分區表,進入查看region信息:
在這裏插入圖片描述

我們看到第一個region是沒有startkey的,最後一個region是沒有stopkey的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章