一个student表,表的逻辑模型如下: 行键为学号,时间戳是自动添加的,列族name是名字,列族score是各科分数。行键是唯一的。

行键 时间戳 列族name 列族score
20130001 T2 \’zhangsan\’  
T3   score:Chinese=\’90\’
T4   score:English=\’80\’
20130002 T5 \’lisi\’  
T6   score:Chinese=\’95\’
…… Tn    

 

 进入HBase的shell:

[coder@h1 hbase-0.90.5]$ bin/hbase shell
HBase Shell; enter \'help<RETURN>\' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.90.5, r1212209, Fri Dec  9 05:40:36 UTC 2011

hbase(main):001:0> 

1、创建student表

hbase(main):002:0> create \'student\',\'name\',\'score\'
0 row(s) in 2.0570 seconds

hbase(main):003:0>

  student:表名

  name:列族

  score:列族

2、查看已创建的表

hbase(main):001:0> list
TABLE                                                                                                                          
student                                                                                                                        
1 row(s) in 0.7590 seconds

hbase(main):002:0> 

3、向表中插入数据

  使用put命令插入数据,参数为表名、行名(行键)、列名、值,其中列名需要列族作为前缀。

  1)向student表中插入学号(行键)为2013001、名字为zhangsan的记录

hbase(main):001:0> put \'student\',\'2013001\',\'name:\',\'zhangsan\'
0 row(s) in 1.1090 seconds

  2)查看表的记录

hbase(main):002:0> scan \'student\'
ROW                              COLUMN+CELL                                                                                   
 2013001                         column=name:, timestamp=1365846723665, value=zhangsan                                         
1 row(s) in 0.2110 seconds

  3)给学号为2013001的学生记录分数

hbase(main):003:0> put \'student\',\'2013001\',\'score:Chinese\',\'90\'
0 row(s) in 0.0360 seconds

  

hbase(main):005:0> put \'student\',\'2013001\',\'score:English\',\'80\'
0 row(s) in 0.0290 seconds

 

hbase(main):006:0> scan \'student\'
ROW                              COLUMN+CELL                                                                                   
 2013001                         column=name:, timestamp=1365846723665, value=zhangsan                                         
 2013001                         column=score:Chinese, timestamp=1365846877328, value=90                                       
 2013001                         column=score:English, timestamp=1365846957089, value=80                                       
1 row(s) in 0.0580 seconds

  4)查看表中记录总数

hbase(main):007:0> count \'student\'
1 row(s) in 0.0990 seconds

4、查看一行记录

  使用get命令,参数为表名、行键

hbase(main):007:0> get \'student\',\'2013001\'
COLUMN                           CELL                                                                                          
 name:                           timestamp=1365846723665, value=zhangsan                                                       
 score:Chinese                   timestamp=1365846877328, value=90                                                             
 score:English                   timestamp=1365846957089, value=80                                                             
3 row(s) in 0.0350 seconds

5、判读一个表是否存在

复制代码
hbase(main):001:0> exists \'student\'
Table student does exist                                                                                                       
0 row(s) in 1.0400 seconds

hbase(main):002:0> exists \'student2\'
Table student2 does not exist                                                                                                  
0 row(s) in 0.0150 seconds
复制代码

6、更新一条记录

复制代码
hbase(main):001:0> put \'student\',\'2013001\',\'score:Chinese\',\'100\'
0 row(s) in 0.8070 seconds

hbase(main):002:0> get \'student\',\'2013001\'
COLUMN                           CELL                                                                                          
 name:                           timestamp=1365846723665, value=zhangsan                                                       
 score:Chinese                   timestamp=1365848492778, value=100                                                            
 score:English                   timestamp=1365846957089, value=80                                                             
3 row(s) in 0.0690 seconds

hbase(main):003:0> 
复制代码

7、获取某一列的值

复制代码
hbase(main):002:0> get \'student\',\'2013001\',\'score\'
COLUMN                           CELL                                                                                          
 score:Chinese                   timestamp=1365848492778, value=100                                                            
 score:English                   timestamp=1365846957089, value=80                                                             
2 row(s) in 0.0340 seconds

hbase(main):003:0> get \'student\',\'2013001\',\'score:Chinese\'
COLUMN                           CELL                                                                                          
 score:Chinese                   timestamp=1365848492778, value=100                                                            
1 row(s) in 0.0320 seconds

hbase(main):004:0> 
复制代码

8、删除整行

  把行键为2013002的这一条记录删掉

复制代码
hbase(main):001:0> scan \'student\'
ROW                              COLUMN+CELL                                                                                   
 2013001                         column=name:, timestamp=1365846723665, value=zhangsan                                         
 2013001                         column=score:Chinese, timestamp=1365848492778, value=100                                      
 2013001                         column=score:English, timestamp=1365846957089, value=80                                       
 2013002                         column=name:, timestamp=1365847639588, value=lisi                                             
 2013002                         column=score:Chinese, timestamp=1365847666351, value=70                                       
 2013002                         column=score:English, timestamp=1365847709403, value=85                                       
2 row(s) in 0.7380 seconds

hbase(main):002:0> deleteall \'student\',\'2013002\'
0 row(s) in 0.0150 seconds

hbase(main):003:0> scan \'student\'               
ROW                              COLUMN+CELL                                                                                   
 2013001                         column=name:, timestamp=1365846723665, value=zhangsan                                         
 2013001                         column=score:Chinese, timestamp=1365848492778, value=100                                      
 2013001                         column=score:English, timestamp=1365846957089, value=80                                       
1 row(s) in 0.0390 seconds

hbase(main):004:0> 
复制代码

9、删除表

  删除表之前需要先disable表

hbase(main):005:0> disable \'user\'
0 row(s) in 2.1600 seconds

hbase(main):006:0> drop \'user\'   
0 row(s) in 1.3750 seconds

版权声明:本文为dannyguo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/dannyguo/p/3196554.html