1、進入HBase客戶端命令操作界面
node01服務器執行以下命令進入hbase的shell客戶端
cd /export/servers/hbase-2.0.0
bin/hbase shell
2、查看幫助命令
hbase(main):001:0> help
3、查看當前數據庫中有哪些表
hbase(main):002:0> list
4、創建一張表
創建user表,包含info、data兩個列族
hbase(main):010:0> create 'user', 'info', 'data'
或者:
hbase(main):010:0> create 'user', {NAME => 'info', VERSIONS => '3'},{NAME => 'data'}
5、添加數據操作
向user表中插入信息,row key爲rk0001,列族info中添加name列標示符,值爲zhangsan
hbase(main):011:0> put 'user', 'rk0001', 'info:name', 'zhangsan'
向user表中插入信息,row key爲rk0001,列族info中添加gender列標示符,值爲female
hbase(main):012:0> put 'user', 'rk0001', 'info:gender', 'female'
向user表中插入信息,row key爲rk0001,列族info中添加age列標示符,值爲20
hbase(main):013:0> put 'user', 'rk0001', 'info:age', 20
向user表中插入信息,row key爲rk0001,列族data中添加pic列標示符,值爲picture
hbase(main):014:0> put 'user', 'rk0001', 'data:pic', 'picture'
6、查詢數據操作
1、通過rowkey進行查詢
獲取user表中row key爲rk0001的所有信息
hbase(main):015:0> get 'user', 'rk0001'
2、查看rowkey下面的某個列族的信息
獲取user表中row key爲rk0001,info列族的所有信息
hbase(main):016:0> get 'user', 'rk0001', 'info'
3、查看rowkey指定列族指定字段的值
獲取user表中row key爲rk0001,info列族的name、age列標示符的信息
hbase(main):017:0> get 'user', 'rk0001', 'info:name', 'info:age'
4、查看rowkey指定多個列族的信息
獲取user表中row key爲rk0001,info、data列族的信息
hbase(main):018:0> get 'user', 'rk0001', 'info', 'data'
或者你也可以這樣寫
hbase(main):019:0> get 'user', 'rk0001', {COLUMN => ['info', 'data']}
或者你也可以這樣寫,也行
hbase(main):020:0> get 'user', 'rk0001', {COLUMN => ['info:name', 'data:pic']}
4、指定rowkey與列值查詢
獲取user表中row key爲rk0001,cell的值爲zhangsan的信息
hbase(main):030:0> get 'user', 'rk0001', {FILTER => "ValueFilter(=, 'binary:zhangsan')"}
5、指定rowkey與列值模糊查詢
獲取user表中row key爲rk0001,列標示符中含有a的信息
hbase(main):031:0> get 'user', 'rk0001', {FILTER => "(QualifierFilter(=,'substring:a'))"}
繼續插入一批數據
hbase(main):032:0> put 'user', 'rk0002', 'info:name', 'fanbingbing'
hbase(main):033:0> put 'user', 'rk0002', 'info:gender', 'female'
hbase(main):034:0> put 'user', 'rk0002', 'info:nationality', '中國'
hbase(main):035:0> get 'user', 'rk0002', {FILTER => "ValueFilter(=, 'binary:中國')"}
6、查詢所有數據
查詢user表中的所有信息
scan 'user'
7、列族查詢
查詢user表中列族爲info的信息
scan 'user', {COLUMNS => 'info'}
scan 'user', {COLUMNS => 'info', RAW => true, VERSIONS => 5}
scan 'user', {COLUMNS => 'info', RAW => true, VERSIONS => 3}
8、多列族查詢
查詢user表中列族爲info和data的信息
scan 'user', {COLUMNS => ['info', 'data']}
scan 'user', {COLUMNS => ['info:name', 'data:pic']}
9、指定列族與某個列名查詢
查詢user表中列族爲info、列標示符爲name的信息
scan 'user', {COLUMNS => 'info:name'}
10、指定列族與列名以及限定版本查詢
查詢user表中列族爲info、列標示符爲name的信息,並且版本最新的5個
scan 'user', {COLUMNS => 'info:name', VERSIONS => 5}
11、指定多個列族與按照數據值模糊查詢
查詢user表中列族爲info和data且列標示符中含有a字符的信息
scan 'user', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"}
12、rowkey的範圍值查詢
查詢user表中列族爲info,rk範圍是[rk0001, rk0003)的數據
scan 'user', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'}
13、指定rowkey模糊查詢
查詢user表中row key以rk字符開頭的
scan 'user',{FILTER=>"PrefixFilter('rk')"}
14、指定數據範圍值查詢
查詢user表中指定範圍的數據
scan 'user', {TIMERANGE => [1392368783980, 1392380169184]}
7、更新數據操作
1、更新數據值
更新操作同插入操作一模一樣,只不過有數據就更新,沒數據就添加
2、更新版本號
將user表的f1列族版本號改爲5
hbase(main):050:0> alter 'user', NAME => 'info', VERSIONS => 5
8、刪除數據以及刪除表操作
1、指定rowkey以及列名進行刪除
刪除user表row key爲rk0001,列標示符爲info:name的數據
hbase(main):045:0> delete 'user', 'rk0001', 'info:name'
2、指定rowkey,列名以及字段值進行刪除
刪除user表row key爲rk0001,列標示符爲info:name,timestamp爲1392383705316的數據
delete 'user', 'rk0001', 'info:name', 1392383705316
3、刪除一個列族
刪除一個列族:
alter 'user', NAME => 'info', METHOD => 'delete'
或
alter 'user', 'delete' => 'info'
4、清空表數據
hbase(main):017:0> truncate 'user'
5、刪除表
首先需要先讓該表爲disable狀態,使用命令:
hbase(main):049:0> disable 'user'
然後才能drop這個表,使用命令:
hbase(main):050:0> drop 'user'
(注意:如果直接drop表,會報錯:Drop the named table. Table must first be disabled)
9、統計一張表有多少行數據
hbase(main):053:0> count ‘user’