HBase Shell 基本的增删改查CRUD操作


1.   1 HBase 命令模式

HBase shell 命令提供了一个TAB键完成指令。

$ hbase shell

进入shell 命令模式后,可以使用HBase shell 命令来操作数据。

将一个hbase日志日期'08/08/16 20:56:29'转化为一个timestamp,可以这样得到:

hbase(main):021:0> import java.text.SimpleDateFormat
hbase(main):022:0> import java.text.ParsePosition
hbase(main):023:0>SimpleDateFormat.new("yy/MM/ddHH:mm:ss").parse("08/08/16 20:56:29",ParsePosition.new(0)).getTime()


 => 1218920189000


反之,通过类似操作也可以得到。

hbase(main):021:0> import java.util.Date
hbase(main):022:0> Date.new(1218920189000).toString()


=>"Sat Aug 16 20:56:29 UTC 2008"


1.2 常用的HBase Shell命令

1.2.1创建表

创建一个表car, 命名一个column family 为 exp(expensive 的缩写)。

hbase(main):020:0>create 'car', 'exp'


1.2.2插入数据

插入三个数据,制造商、模型和生产日期。具体的命令如下:

put 'car','row1','exp:make', 'bmw'
put 'car', 'row1', 'exp:model', ' 5 series'
put'car', 'row1', 'exp:year', '2012-12-20'
 
put 'car', 'row2', 'exp:make', 'benz'
put 'car', 'row2', 'exp:model', 'c200'
put 'car', 'row2', 'exp:year', '2013'


1.2.3查询

    查询所有指定的结果,使用scan加上具体的修饰语句。

             hbase(main):043:0> scan 'car', {COLUMNS =>['exp:make']}


如果需要限定只返回一个行的数据,可以这样实现:

hbase(main):044:0> scan 'car', {COLUMNS=> ['exp:make'], LIMIT => 1}


NOTES: hbase shell 的命令区分大小写,如COLUMNS LIMIT等关键字。

获取到某一行,使用get命令,具体指令如下:

hbase(main):045:0> get 'car', 'row1'
COLUMN                CELL                                                     
 exp:make             timestamp=1363919137232,value=bmw                       
 exp:model            timestamp=1363919183289, value= 5series                 
 exp:year             timestamp=1363919193544,value=2012-12-20


1.2.4删除

删除cell数据,指定到具体的column名称。

hbase(main):047:0>delete 'car', 'row1', 'exp:year'


检测一下具体的数据内容,可以看到数据已经删除。

hbase(main):048:0> get 'car' , 'row1'
COLUMN                CELL                                                     
 exp:make             timestamp=1363919137232,value=bmw                       
 exp:model            timestamp=1363919183289, value= 5series


删除table, 需要运行如下命令:

  hbase(main):050:0>disable 'car'
0 row(s) in 2.0460 seconds
    hbase(main):052:0> drop 'car'
0 row(s) in 1.0410 seconds


查看表单,发现确实删除了。

hbase(main):053:0> list
TABLE                                                                          
mytable                                                                        
1 row(s) in 0.0100 seconds


当不清楚某个命令是,使用help帮助命令.


NOTES:转载请注明出处,谢谢!

你可能感兴趣的:(hbase)