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:转载请注明出处,谢谢!