Hbase region 管理
阿新 • • 發佈:2018-12-29
實驗環建
master: 192.168.1.160
slave1: 192.168.1.161
zookeeper版本: 3.4.6
hadoop版本: apache-hadoop-2.6.5
hbase版本: 1.2.6
主機作業系統: ubuntu-16.04
region 日常管理命令
region分割
建立表
hbase(main):068:0> create 'ns2:t1', NAME=>'f1' 0 row(s) in 1.2780 seconds => Hbase::Table - ns2:t1
分割表
hbase(main):075:0> split 'ns2:t1', '00100'
查看錶元資料
hbase(main):075:0> scan 'hbase:meta'
可以看出ns2:t1表被分割成兩個region。
合併region
查看錶的元資料
base(main):081:0> scan 'hbase:meta'
表ns2:t1有兩個region,下面需要將其合併為一個region。合併region
hbase(main):078:0> merge_region '53e22bebf0b02667f0c408bfdf68a931', 'b5c9f4b0eb33dadec81e44dab820b2ac' 0 row(s) in 0.0560 seconds
再次檢視元資料
hbase(main):081:0> scan 'hbase:meta'
可以看出兩個region被合併成一個region。
關閉region
新建一個有兩個region的表
hbase(main):099:0> create 'ns2:t1','f1' ,SPLITS=>['00100'] 0 row(s) in 1.2690 seconds => Hbase::Table - ns2:t1 hbase(main):104:0> scan 'hbase:meta'
分別給兩個region中插入資料
hbase(main):002:0> put 'ns2:t1', '00001' , 'f1:name', 'lisi' hbase(main):004:0> put 'ns2:t1', '00101' , 'f1:name', 'Bob' hbase(main):006:0> scan 'ns2:t1' ROW COLUMN+CELL 00001 column=f1:name, timestamp=1532365712744, value=lisi 00101 column=f1:name, timestamp=1532365730917, value=Bob 2 row(s) in 0.0270 seconds
關閉其中一個region
hbase(main):015:0> close_region ‘ns2:t1,,1532364170492.96603f4c1b2df6dbe5d316820494d2e8.’
0 row(s) in 0.0640 seconds訪問剛插入的資料
hbase(main):020:0> get 'ns2:t1', '00101' COLUMN CELL f1:name timestamp=1532365730917, value=Bob 1 row(s) in 0.0100 seconds hbase(main):027:0> get 'ns2:t1', '00001' COLUMN CELL ERROR: org.apache.hadoop.hbase.NotServingRegionException: Region ns2:t1,,1532364170492.96603f4c1b2df6dbe5d316820494d2e8. is not online on master,16020,1532358837870
可見沒有被關閉的region裡的資料還能正常訪問。
region上線
關閉的region上線
基於ns2:t1表,讓關閉的region重新上線。hbase(main):031:0> assign 'ns2:t1,,1532364170492.96603f4c1b2df6dbe5d316820494d2e8.' 0 row(s) in 0.0590 seconds
重新訪問以前新增的資料
hbase(main):036:0> scan 'ns2:t1' ROW COLUMN+CELL 00001 column=f1:name, timestamp=1532365712744, value=lisi 00101 column=f1:name, timestamp=1532365730917, value=Bob 2 row(s) in 0.0430 seconds
移動region
新建一個有兩個region的表
hbase(main):046:0> create 'ns2:t2','f1' ,SPLITS=>['0010'] 0 row(s) in 1.2710 seconds => Hbase::Table - ns2:t2
檢視兩個region在主機上的分佈
hbase(main):051:0> scan 'hbase:meta'
可以看出一個region位於slave1上,一個位於master上。移動region
將位於master上的region移動到主機slave1上。hbase(main):055:0> move '574e8f43936dbb63342041bb370c4b93', 'slave1,16020,1532358841383' 0 row(s) in 0.0280 seconds
再次檢視region在主機上的分佈
可以看出兩個region都在slave1上了。
region負載均衡
hbase(main):064:0> balancer #觸發region負載均衡
hbase(main):065:0> balance_switch true #啟用均衡算器
hbase(main):065:0> balance_switch false #關閉均衡算器