HBase Shell 指令
名稱 | 指令表達式 |
建立表 | create '表名稱', '列名稱1','列名稱2','列名稱N' |
添加記錄 | put '表名稱', '行名稱', '列名稱:', '值' |
檢視記錄 | get '表名稱', '行名稱' |
檢視表中的記錄總數 | count '表名稱' |
删除記錄 | delete '表名' ,'行名稱' , '列名稱' |
删除表 | 第一步 disable '表名稱' 第二步 drop '表名稱' |
檢視所有記錄 | scan ‘表名稱’ |
檢視某個表某個列中所有資料 | scan "表名稱" , ['列名稱:'] |
更新記錄 | 重寫一遍進行覆寫 |
[email protected]:~# hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.6, r1456690, Thu Mar 14 15:58:27 PDT 2013
1). create 指令
建立一個具有兩個列族“grade”和“course”的表“scores”。其中表名、行和列都要用單引号括起來,并以逗号隔開
hbase(main):001:0> create 'scores', 'name', 'grade', 'course'
2). list 指令
檢視目前 HBase 中具有哪些表
hbase(main):002:0> list
3). describe 指令
檢視表“scores”的構造
hbase(main):003:0> describe 'scores'
4). put 指令
使用 put 指令向表中插入資料,參數分别為表名、行名、列名和值,其中列名前需要列族最為字首,時間戳由系統自動生成
格式: put 表名,行名,列名([列族:列名]),值
a. 加入一行資料,行名稱為“tom”,列族“grade”的列名為”(空字元串)”,值位 1。
hbase(main):004:0> put 'scores', 'tom', 'grade:', '1'
hbase(main):005:0> put 'scores', 'tom', 'grade:', '2' --修改操作(update)
b. 給“tom”這一行的資料的列族“course”添加一列“<china,97>”
hbase(main):006:0> put 'scores', 'tom', 'course:china', '77'
hbase(main):007:0> put 'scores', 'tom', 'course:math', '98'
hbase(main):008:0> put 'scores', 'tom', 'course:english', '86'
5). get 指令
a.檢視表“scores”中的行“tom”的相關資料
hbase(main):009:0> get 'scores', 'tom'
b.檢視表“scores”中行“tom”列“course :math”的值
hbase(main):010:0> get 'scores', 'tom', 'course :math'
或者
hbase(main):011:0> get 'scores', 'tom', {COLUMN=>'course:math'}
hbase(main):012:0> get 'scores', 'tom', {COLUMNS=>'course:math'}
COLUMN 和 COLUMNS 是不同的,scan 操作中的 COLUMNS 指定的是表的列族, get操作中的 COLUMN指定的是特定的列,COLUMNS 的值實質上為“列族:列修飾符”。COLUMN 和 COLUMNS 必須為大寫。
6). scan 指令
a. 檢視表“scores”中的所有資料。
hbase(main):013:0> scan 'scores'
注意:
scan 指令可以指定 startrow,endrow 來 scan 多個 row。
例如:
scan 'user_test',{COLUMNS =>'info:username',LIMIT =>10, STARTROW => 'test', STOPROW=>'test2'}
b.檢視表“scores”中列族“course”的所有資料。
hbase(main):014:0> scan 'scores', {COLUMN => 'grade'}
hbase(main):015:0> scan 'scores', {COLUMN=>'course:math'}
hbase(main):016:0> scan 'scores', {COLUMNS => 'course'}
hbase(main):017:0> scan 'scores', {COLUMNS => 'course'}
7). count 指令
hbase(main):018:0> count 'scores'
8). exists 指令
hbase(main):019:0> exists 'scores'
9). delete指令
hbase(main):020:0> delete 'scores', 'tomcourse:math'
hbase(main):021:0> deleteall 'scores'
HBase的API操作,請參考Java Example Code using HBase Data Model Operations