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.SimpleDateFormathbase(main):022:0> import java.text.ParsePositionhbase(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.Datehbase(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> listTABLE mytable 1 row(s) in 0.0100 seconds
當不清楚某個命令是,使用help協助命令.
NOTES:轉載請註明出處,謝謝。