HBase 提供了一個相似於mysql等關係型數據庫的hbase shell,經過該hbase shell能夠對HBase的內的相關表、列族等進行操做;HBase shell的help命令比較詳細的列介紹了HBase所支持的命令.具體使用方法能夠參見其API文檔。mysql
在這裏簡單舉個學生表scores的案例進行講解,表數據以下:
sql
name grad course:math course:english
Tom 1 89 97
Jerry 2 100 90
|
這 裏grad對於表來講是一個列,course對於表來講是一個列族,這個列族由兩個列組成:math和english,固然咱們能夠根據咱們的須要在 course中創建更多的列族,如computer,physics,art等相應的列添加入course列族中。shell
下面列出常使用的hbase shell 命令以下:數據庫
名稱spa |
命令表達式code |
建立表orm |
create '表名稱', '列名稱1','列名稱2','列名稱N'ci |
添加記錄 文檔 |
put '表名稱', '行名稱', '列名稱:', '值'get |
查看記錄 |
get '表名稱', '行名稱' |
查看錶中的記錄總數 |
count '表名稱' |
刪除記錄 |
delete '表名' ,'行名稱' , '列名稱' |
刪除一張表 |
先要屏蔽該表,才能對該表進行刪除,第一步 disable '表名稱' 第二步 drop '表名稱' |
查看全部記錄 |
scan "表名稱" |
查看某個表某個列中全部數據 |
scan "表名稱" , ['列名稱:'] |
更新記錄 |
就是重寫一遍進行覆蓋 |
一、創建一個表格 scores 具備兩個列族grad 和courese案例以下:
hbase(main):002:0> create 'scores', 'grade', 'course'
0 row(s) in 4.1610 seconds
|
二、查看當先HBase中具備哪些表
hbase(main):003:0> list
scores
1 row(s) in 0.0210 seconds
|
三、查看錶的構造
hbase(main):004:0> describe 'scores'
{NAME => 'scores', IS_ROOT => 'false', IS_META => 'false', FAMILIES => [{NAME => 'course', BLOOMFILTER => 'false', IN_MEMORY => 'false', LENGTH => '2147483647', BLOCKCACHE => 'false', VERSIONS => '3', TTL => '-1', COMPRESSION => 'NONE'}, {NAME => 'grade', BLOOMFILTER => 'false', IN_MEMORY => 'false', LENGTH => '2147483647', BLOCKCACHE => 'false', VERSIONS => '3', TTL => '-1', COMPRESSION => 'NONE'}]}
1 row(s) in 0.0130 seconds
|
四、 加入一行數據,行名稱爲 Tom 列族grad的列名爲」」 值位1
hbase(main):005:0> put 'scores', 'Tom', 'grade:', '1'
0 row(s) in 0.0070 seconds
|
五、給Tom這一行的數據的列族添加一列 <math,89>
hbase(main):006:0> put 'scores', 'Tom', 'course:math', '89'
0 row(s) in 0.0040 seconds
|
六、給Tom這一行的數據的列族添加一列 <english,97>
hbase(main):007:0> put 'scores', 'Tom', 'course:english', '97'
0 row(s) in 0.0030 seconds
|
七、 加入一行數據,行名稱爲 Jerry 列族grad的列名爲」」 值位2
hbase(main):
008
:
0
> put
'scores'
,
'Jerry'
,
'grade:'
,
'2'
0
row(s) in
0.0040
seconds
|
八、給Jerry這一行的數據的列族添加一列 <math,100>
hbase(main):009:0> put 'scores', 'Jerry', 'course:math', '100'
0 row(s) in 0.0030 seconds
|
九、給Jerry這一行的數據的列族添加一列 <english,90>
hbase(main):010:0> put 'scores', 'Jerry', 'course:english', '90'
0 row(s) in 0.0050 seconds
|
十、查看scores表中Tom的相關數據
hbase(main):011:0> get 'scores', 'Tom'
COLUMN CELL
course:english timestamp=1224726394286, value=97
course:math timestamp=1224726377027, value=89
grade: timestamp=1224726360727, value=1
3 row(s) in 0.0070 seconds
|
十一、判斷表是否enable
hbase(main):012:0>is_enabled 'scores'
true
0 row(s) in 0.0110seconds
|
十二、判斷表是否disable
hbase(main):013:0>is_disabled 'scores'
false
0 row(s) in 0.0110seconds
|
1三、刪除表scores
hbase(main):014:0>disable 'scores'
0 row(s) in 2.0590seconds
hbase(main):030:0>drop 'scores'
0 row(s) in 1.1070seconds
|
1四、查詢表是否存在
hbase(main):015:0>exists 'scores'
Table scores doesexist
0 row(s) in 0.1610seconds
|
1五、查看scores表中全部數據
hbase(main):016:0> scan 'scores'
ROW COLUMN+CELL
Tom column=course:english, timestamp=1224726394286, value=97
Tom column=course:math, timestamp=1224726377027, value=89
Tom column=grade:, timestamp=1224726360727, value=1
Jerry column=course:english, timestamp=1224726424967, value=90
Jerry column=course:math, timestamp=1224726416145, value=100
Jerry column=grade:, timestamp=1224726404965, value=2
6 row(s) in 0.0410 seconds
|
1六、查看scores表中全部數據courses列族的全部數據
hbase(main):017:0> scan 'scores', ['course:']
ROW COLUMN+CELL
Tom column=course:english, timestamp=1224726394286, value=97
Tom column=course:math, timestamp=1224726377027, value=89
Jerry column=course:english, timestamp=1224726424967, value=90
Jerry column=course:math, timestamp=1224726416145, value=100
4 row(s) in 0.0200 seconds