Hbase之shell基本操作

一、系统命令

启动hbase Shell
  ./bin/hbase shell
获取帮助
  help
查询服务器状态
  status
查询hbase版本
  version
查询表
  list
获取表描述
  describe 'member'
扫描记录
  scan ‘table’
禁用表
  disable ‘table’
使能表
  enable ‘table’
删除表
  disable ‘table’
  drop ‘table’
退出hbase shell
  quit

二、控制命令权限grant命令用于给指定用户授予特定的权限

  grant <user>, <permissions> [, <@namespace> [, <table> [, <column family> [, <column qualifier>]]]]

    # 给用户userName授予RWXC权限
    grant 'userName', 'RWXC'
   # 给用户test授予表tbl1的读权限
    grant 'userName','R','tableName'
   # 给用户组testgrp授予表tbl1的读权限
    grant '@userFroup','R','tableName'
   # 给用户test授予namespace ns_1的CREATE权限
    grant 'userName 'C','@ns_1'

2、revoke命令用于回收指定用户的权限
  revoke <user> [, <@namespace> [, <table> [, <column family> [, <column qualifier>]]]]
 

   # 回收用户userName授予RWXC权限
    revoke 'userName'
   # 回收用户userName授予表tbl1的读权限
    revoke 'userName','R','tableName'
   # 回收用户组testgrp授予表tbl1的读权限
    revoke '@userFroup','R','tableName'
   # 回收用户userName授予namespace ns_1的CREATE权限
    revoke 'userName 'C','@ns_1'

3、user_permission用于查询权限
  user_permission <table>

查看指定表的权限
  user_permission 'table01'

4、<permissions>包括以下5种权限
  R - 可以读取给定范围的数据。
  W - 可以在给定范围内写入数据。
  X - 可以在给定范围内有执行权限。
  C - 可以在给定范围内创建表或删除表(甚至是那些他们没有创建的表)。
  A - 可以执行集群操作,例如平衡集群或在给定范围内分配Region。

三、DML操作一

1、创建用户信息表user_info
  create 'user_info',{NAME => 'i'}

2、以增加编号12005000201的用户信息为例,其他用户信息参照如下命令依次添加
  put 'user_info','12005000201','i:name','A'
  put 'user_info','12005000201','i:gender','Male'
  put 'user_info','12005000201','i:age','19'
  put 'user_info','12005000201','i:address','Shenzhen, Guangdong'

3、在用户信息表user_info中新增用户的学历、职称信息
  put 'user_info','12005000201','i:degree','master'
  put 'user_info','12005000201','i:pose','manager'

4、根据用户编号查询用户姓名和地址
  scan 'user_info',{STARTROW=>'12005000201',STOPROW=>'12005000201',COLUMNS=>['i:name','i:address']}

5、根据用户姓名进行查询
  scan 'user_info',{FILTER=>"SingleColumnValueFilter('i','name',=,'binary:A')"}

6、删除用户信息表中该用户的数据
  delete 'user_info','12005000201','i'

7、删除用户信息表
  disable 'user_info';drop 'user_info'

四、DML操作二

1、创建一个普通表
    创建表   表名      列族1      列族2      列族3
    create 'member','member_id','address','info'
    
2、插入数据
    put 'member','xiaoming','info:age','24'
    put 'member','xiaoming','info:birthday','1987-06-17'
    put 'member','xiaoming','info:company','alibaba'
    put 'member','xiaoming','address:contry','china'
    put 'member','xiaoming','address:province','zhejiang'
    put 'member','xiaoming','address:city','hangzhou'
    
    put 'member','xiaofeng','info:birthday','1987-4-17'
    put 'member','xiaofeng','info:favorite','movie' 
    put 'member','xiaofeng','info:company','alibaba'
    put 'member','xiaofeng','address:contry','china'
    put 'member','xiaofeng','address:province','guangdong'
    put 'member','xiaofeng','address:city','jieyang'
    put 'member','xiaofeng','address:town','xianqiao'
3、获取一条数据
    获取一个id的所有数据
        get 'member','xiaofeng'
      

    获取一个id,一个列族的所有数据
        get 'member', 'xiaoming','info'
      

    获取一个id,一个列族中一个列的所有数据
        get 'member','xiaoming','info:age'
      
    得到所有行info:birthday列中的数据
        scan 'member' , {COLUMNS => 'info:birthday'}
4、更新一条数据
    将xiaoming的年龄改成99
        put 'member','xiaoming','info:age' ,'99'
      
        get 'member','xiaoming','info:age' 
      
5、通过timestamp来获取两个版本的数据
    get 'member','xiaoming',{COLUMN=>'info:age',TIMESTAMP=>1321586238965}
      
    get 'member','xiaoming',{COLUMN=>'info:age',TIMESTAMP=>1321586571843}
      
6、删除id为xiaoming的值的‘info:age’字段
    delete 'member','xiaoming','info:age'
7、删除整行
    deleteall 'member','xiaofeng'
8、查询表中有多少行
    count 'member'
9、给xiaofeng这个id增加'info:age'字段
    incr 'member','xiaofeng','info:age'                    
    get 'member','xiaofeng','info:age' 
10、将整张表清空
    truncate 'member'

四、DDL操作

1、创建一个普通表(包含3个列族)
        create 'member','member_id','address','info'

    创建一个带版本的表
        create 't1',{NAME='cf',VERSIONS=5}
2、获取表的描述
    list
    describe 'member'
3、删除一个列族
    我们之前建了3个列族,但是发现member_id这个列族是多余的,因为他就是主键,所以我们要将其删除。(关键字大小写敏感)
    disable 'member'
    alter'member',NAME=>'member_id',METHOD=>'delete'
    describe 'member'
    该列族已经删除,我们继续将表enable
    enable 'member' 
4、删除一个表
    disable 'temp_table'
    drop 'temp_table'
5、查询表是否存在
    exists 'member'
6.判断表是否enable
    is_enabled 'member'
7.判断表是否disable
    is_disabled 'member'
做自己的太阳,成为别人的光!
原文地址:https://www.cnblogs.com/botaoli/p/13860639.html