1. 程式人生 > 實用技巧 >Hbase之shell基本操作

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

二、控制命令許可權

1、grant命令用於給指定使用者授予特定的許可權
  grant <user>, <permissions> [, <@namespace> [, <table> [, <column family> [, <column qualifier>]]]]
  給使用者userA授予RWXC許可權
    grant 
'userA', 'RWXC' 2、revoke命令用於回收指定使用者的許可權   revoke <user> [, <@namespace> [, <table> [, <column family> [, <column qualifier>]]]]   回收使用者userA的許可權     revoke 'userA' 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'