Hbase region 管理

实验环建

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'
    

    Hbase region 管理_第1张图片
    表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'
    

    Hbase region 管理_第2张图片

  • 分别给两个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'
    

    Hbase region 管理_第3张图片
    可以看出一个region位于slave1上,一个位于master上。

  • 移动region
    将位于master上的region移动到主机slave1上。

    hbase(main):055:0> move '574e8f43936dbb63342041bb370c4b93', 'slave1,16020,1532358841383'
    0 row(s) in 0.0280 seconds
    
  • 再次查看region在主机上的分布
    Hbase region 管理_第4张图片

    可以看出两个region都在slave1上了。

region负载均衡

hbase(main):064:0> balancer #触发region负载均衡
hbase(main):065:0> balance_switch true  #启用均衡算器
hbase(main):065:0> balance_switch false #关闭均衡算器

你可能感兴趣的:(Hbase从入门到放弃)