本文共 3238 字,大约阅读时间需要 10 分钟。
master: 192.168.1.160slave1: 192.168.1.161zookeeper版本: 3.4.6hadoop版本: apache-hadoop-2.6.5hbase版本: 1.2.6主机操作系统: ubuntu-16.04
创建表
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。
查看表的元数据
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的表
hbase(main):099:0> create 'ns2:t1','f1' ,SPLITS=>['00100']0 row(s) in 1.2690 seconds=> Hbase::Table - ns2:t1hbase(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上线
基于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的表
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上了。
hbase(main):064:0> balancer #触发region负载均衡hbase(main):065:0> balance_switch true #启用均衡算器hbase(main):065:0> balance_switch false #关闭均衡算器