目錄
- 1. HBase常用命令
- 1.1 create命令
- 1.2 list命令
- 1.3 describe命令
- 1.4 put命令
- 1.5 get命令
- 1.6 scan命令
- 1.7 count命令
- 1.8 exists命令
- 1.9 修改表結構
- 1.10 delete命令
- 1.11 deleteall命令
- 1.12 truncate命令
- 1.13 disable、drop命令
- 1.14 status命令
- 1.15 version命令
- 2. HBase Shell綜合示例
- 2.1 創建表并插入數據
- 2.2 基本操作實踐
- 3. HBase Shell全部命令
- 參考
1. HBase常用命令
??HBase為用戶提供了一個非常方便的使用方式,稱之為HBase Shell。HBase Shell提供了大多數的HBase命令,通過HBase Shell,用戶可以方便地創建、刪除及修改表,還可以向表中添加數據、列出表中的相關信息。
??HBase Shell的常用命令如下表所示。
名稱 | 命令表達式 |
---|---|
創建表 | create '表名稱', '列族名稱1', '列族名稱2', '列族名稱3' |
添加記錄 | put '表名稱', '行鍵', '列名稱:', '值' |
查看記錄 | get '表名稱', '行鍵' |
查看表中的記錄總數 | count '表名稱' |
刪除記錄 | delete '表名', '行鍵', '列名稱' |
刪除一張表 | 先要屏蔽該表,才能對該表進行刪除,第一步disable '表名稱' ,第二步drop '表名稱' |
查看所有記錄 | ``scan ‘表名稱’ |
查看某個表某個列中的所有數據 | scan '表名稱', {COLUMNS=>'列族名稱:列名稱'} |
更新記錄 | 重寫一遍進行覆蓋 |
1.1 create命令
??功能:創建表。
??create命令:create '表名稱', '列族名稱1‘, '列族名稱2', '列族名稱3'
,其中表名、列名都要用單引號括起來,并以逗號分割。
1.2 list命令
??功能:查看當前HBase有哪些表。
1.3 describe命令
??功能:查看指定表的構造。
??describe命令:describe '表名'
。describe可簡寫為desc。
1.4 put命令
??功能:向表中插入數據。
??put命令:put '表名', '行鍵', '列族:列名', '值'
。
1.5 get命令
??功能:查看指定表中指定行鍵或指定列的相關數據。
??命令:get '表名', '行鍵'
或get '表名', '行鍵', '列族:列名'
。
1.6 scan命令
??功能:查看指定表或指定列的所有數據。
??命令:scan ‘表名’
或scan '表名', {COLUMN => '列族:列名'
}或scan '表名', {COLUMNS=>'列族'}
。
1.7 count命令
??功能:統計記錄條數。
??命令:count '表名'
。
1.8 exists命令
??功能:判斷表是否存在。
??命令:exists '表名'
。
1.9 修改表結構
??先要disable '表名'
,再對表進行修改,最后要enable '表名'
。
??下面的命令可以將HBase的scores表course列族改為保存3份歷史副本。
1.10 delete命令
??功能:刪除指定表中指定列的數據。
??命令:delete '表名', '行鍵', '列族:列名'
。
1.11 deleteall命令
??功能:刪除指定行鍵的記錄。
??命令:deleteall '表名', '行鍵'
。
1.12 truncate命令
??功能:清空表中數據,但保留表結構。
??命令:truncate '表名'
。
1.13 disable、drop命令
??功能:先禁用表,然后刪除表。
??命令:disable '表名'
和drop '表名'
。
1.14 status命令
??功能:查看HBase運行狀態。
??命令:status
。
1.15 version命令
??功能:查看HBase的版本信息。
??命令:version
。
2. HBase Shell綜合示例
2.1 創建表并插入數據
create 'users', 'user_id', 'address', 'info'
put 'users', 'xiaoming', 'info:age', '24'
put 'users', 'xiaoming', 'info:birthday', '1987-06-17'
put 'users', 'xiaoming', 'info:company', 'alibaba'
put 'users', 'xiaoming', 'address:country', 'China'
put 'users', 'xiaoming', 'address:province', 'zhejiang'
put 'users', 'xiaoming', 'address:city', 'hangzhou'
put 'users', 'zhangyifei', 'info:birthday', '1987-4-17'
put 'users', 'zhangyifei', 'info:favorite', 'movie'
put 'users', 'zhangyifei', 'info:company', 'alibaba'
put 'users', 'zhangyifei', 'address:country', 'China'
put 'users', 'zhangyifei', 'address:province', 'guangdong'
put 'users', 'zhangyifei', 'address:city', 'jieyang'
put 'users', 'zhangyifei', 'address:town', 'xianqiao'
2.2 基本操作實踐
??獲取一個行鍵對應的記錄:get 'users', 'xiaoming'
。
??獲取一個列族對應的記錄:get 'users', 'xiaoming', 'info'
。
??獲取一個列名對應的記錄:get 'users', 'xiaoming', 'info:age'
。
??在HBase中,數據的插入和更新統一使用put命令。當使用put命令向一個表中的某個列插入數據時,如果該數據原來不存在,則執行插入操作;如果原始數據存在,則執行更新操作。HBase執行更新操作時并不會將原有的數據刪除替換,而是直接以一個新的版本號額外將新的數據插入到單元格中,這就意義著HBase允許通過查詢將某一個單元格中曾經存在過的所有歷史版本數據同一查詢出來。
alter 'user', {NAME=>'info', VERSIONS=>3}
put 'users', 'xiaoming', 'info:age', '29'
get 'users', 'xiaoming', 'info:age'
put 'users', 'xiaoming', 'info:age', '30'
get 'users', 'xiaoming', 'info:age'
??從下圖中可以兩次get命令查看的info:age都是當前最新的數據。
??獲取單元格中不同版本的數據:get 'users', 'xiaoming', {COLUMN=>'info:age', VERSIONS=>3}
。
??刪除一個行鍵對應記錄中列名的數據:delete 'users', 'xiaoming', 'info:age'
。
??從下圖中可以刪除xiaoming對應記錄中info:age=30的數據。
??刪除一個行鍵對應的記錄:deleteall 'users', 'xiaoming'
。
??統計行數:count 'users'
。
??清空表:truncate 'users'
。
3. HBase Shell全部命令
參考
吳章勇 楊強著 大數據Hadoop3.X分布式處理實戰