天天看點

HBase Shell與API操作

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