HBase預分區


hbase建表時,支持預分區,在shell中操作:

hbase(main):033:0> create 't1','f1',SPLITS => ['10','20','30']
hbase(main):027:0> put 't1','5','f1:c1','1'
0 row(s) in 0.0280 seconds

hbase(main):028:0> put 't1','20','f1:c1','1'
0 row(s) in 0.1480 seconds

hbase(main):029:0> put 't1','40','f1:c1','1'
0 row(s) in 0.0100 seconds

需要注意的是,表t1建立4個分區:[min,'10'),['10','20'),['20','30'),['30',max)

插入數據之后,數據可能還在內存,沒有刷到hdfs,做下操作:

hbase(main):031:0> flush 't1'
0 row(s) in 1.5330 seconds

從hbase管理界面查看數據文件:

Region Name Start Key End Key
t1,,1532848759672.8c4fb6c5fb9a52427a88dddc958bc6f4.   10
t1,10,1532848759672.3b114bc4a078c6593e495ffacda71d8e. 10 20
t1,20,1532848759672.398dc734620ed289ad7b2a03a33d8d5b. 20 30
t1,30,1532848759672.607dc0ffac9721c6ded846550ee418d6. 30  

查看hdfs上t1的region如下:

drwxr-xr-x   - hbase hbase          0 2018-07-29 16:13 /hbase/data/default/t1/398dc734620ed289ad7b2a03a33d8d5b
drwxr-xr-x   - hbase hbase          0 2018-07-29 15:19 /hbase/data/default/t1/3b114bc4a078c6593e495ffacda71d8e
drwxr-xr-x   - hbase hbase          0 2018-07-29 16:13 /hbase/data/default/t1/607dc0ffac9721c6ded846550ee418d6
drwxr-xr-x   - hbase hbase          0 2018-07-29 15:19 /hbase/data/default/t1/8c4fb6c5fb9a52427a88dddc958bc6f4

查看其中一個region的f1列族的HFile文件信息如下:

-rw-r--r--   3 hbase hbase       1034 2018-07-29 16:13 /hbase/data/default/t1/607dc0ffac9721c6ded846550ee418d6/f1/952bedb2b2f34dd9a2ff131202916475

剛剛插入了3條數據,那么這3條數據在些文件里面呢,需要記住的是hbase種rowkey按照字典序排列的,是字典序!,所以剛剛3條數據,rowkey='5'和rowkey='40'在最后一個分區,rowkey='20'的在倒數第二個分區,特別容易誤以為rowkey='5'的落在了第一個分區,第一個分區只會存rowkey為'00','000','01000'.....這樣的

還有一點主意的地方,如果對表truncate了,之后就沒有預分區!

hbase(main):034:0> truncate 't1'
Truncating 't1' table (it may take a while):
 - Disabling table...
 - Truncating table...
0 row(s) in 3.6830 seconds

hbase(main):035:0> flush 't1'

查看hdfs:

hadoop fs -ls /hbase/data/default/t1/
drwxr-xr-x   - hbase hbase          0 2018-07-29 17:38 /hbase/data/default/t1/6aed5d65799dda34b869a61c1f81159f

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM