【Hbase】hbase必須掌握的常用shell操作

目錄

常用指令

添加數據操作

查詢數據操作

更新數據操作

刪除數據以及刪除表操作

高級shell管理命令


  • 常用指令

進入HBase客戶端命令操作界面

hbase shell

 

查看幫助命令

help 

 

查看當前數據庫中有哪些表

list 

 

創建一張表

創建user表,包含info、data兩個列

create 'user', 'info', 'data'
create 'user', {NAME => 'info', VERSIONS => '3'},{NAME => 'data'}

 

  • 添加數據操作

向user表中插入信息,row key爲rk0001,列族info中添加name列標示符,值爲zhangsan

put 'user', 'rk0001', 'info:name', 'zhangsan'

 

向user表中插入信息,row key爲rk0001,列族info中添加gender列標示符,值爲female

put 'user', 'rk0001', 'info:gender', 'female' 

 

 

向user表中插入信息,row key爲rk0001,列族info中添加age列標示符,值爲20

put 'user', 'rk0001', 'info:age', 20

 

向user表中插入信息,row key爲rk0001,列族data中添加pic列標示符,值爲picture

put 'user', 'rk0001', 'data:pic', 'picture' 

 

  • 查詢數據操作

通過rowkey進行查詢

獲取user表中row key爲rk0001的所有信息

get 'user', 'rk0001'

 

查看rowkey下面的某個列族的信息

獲取user表中row key爲rk0001,info列族的所有信息

 

get 'user', 'rk0001', 'info'

 

查看rowkey指定列族指定字段的值

獲取user表中row key爲rk0001,info列族的name、age列標示符的信息

 

查看rowkey指定多個列族的信息

獲取user表中row key爲rk0001,info、data列族的信息

get 'user', 'rk0001', 'info', 'data'
get 'user', 'rk0001', {COLUMN => ['info', 'data']}
get 'user', 'rk0001', {COLUMN => ['info:name', 'data:pic']}

 

指定rowkey與列值查詢

獲取user表中row key爲rk0001,cell的值爲zhangsan的信息

get 'user', 'rk0001', {FILTER => "ValueFilter(=, 'binary:zhangsan')"}

 

指定rowkey與列值模糊查詢

獲取user表中row key爲rk0001,列標示符中含有a的信息

get 'user', 'rk0001', {FILTER => "(QualifierFilter(=,'substring:a'))"}

 

查詢所有數據

查詢user表中的所有信息

scan 'user'

 

列族查詢

查詢user表中列族爲info的信息

scan 'user', {COLUMNS => 'info'}
scan 'user', {COLUMNS => 'info', RAW => true, VERSIONS => 5}
scan 'user', {COLUMNS => 'info', RAW => true, VERSIONS => 3}

 

多列族查詢

查詢user表中列族爲info和data的信息

scan 'user', {COLUMNS => ['info', 'data']}
scan 'user', {COLUMNS => ['info:name', 'data:pic']}

 

 

指定列族與某個列名查詢

查詢user表中列族爲info、列標示符爲name的信息

scan 'user', {COLUMNS => 'info:name'}

 

指定列族與列名以及限定版本查詢

查詢user表中列族爲info、列標示符爲name的信息,並且版本最新的5個

scan 'user', {COLUMNS => 'info:name', VERSIONS => 5}

 

指定多個列族與按照數據值模糊查詢

查詢user表中列族爲info和data且列標示符中含有a字符的信息

scan 'user', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"}

 

rowkey的範圍值查詢

查詢user表中列族爲info,rk範圍是[rk0001, rk0003)的數據

scan 'user', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'}

 

指定rowkey模糊查詢

查詢user表中row key以rk字符開頭的

scan 'user',{FILTER=>"PrefixFilter('rk')"}

 

指定數據範圍值查詢

查詢user表中指定範圍的數據

scan 'user', {TIMERANGE => [1392368783980, 1392380169184]}

 

  • 更新數據操作

更新數據值

更新操作同插入操作一模一樣,只不過有數據就更新,沒數據就添加

put'user', 'rk0001', 'info:name', 'lisi'

 

更新版本號

將user表的f1列族版本號改爲5

alter 'user', NAME => 'info', VERSIONS => 5

 

  • 刪除數據以及刪除表操作

指定rowkey以及列名進行刪除

刪除user表row key爲rk0001,列標示符爲info:name的數據

delete 'user', 'rk0001', 'info:name'

 

指定rowkey,列名以及字段值進行刪除

刪除user表row key爲rk0001,列標示符爲info:name,timestamp爲1392383705316的數據

delete 'user', 'rk0001', 'info:name', 1392383705316

 

刪除一個列族

刪除info列族

alter 'user', NAME => 'info', METHOD => 'delete'
alter 'user', 'delete' => 'info'

 

清空表數據

清空user表數據

truncate 'user'

 

刪除表

刪除user表

首先需要先讓該表爲disable狀態

disable 'user'

 然後才能drop這個表

drop 'user'

注意:如果直接drop表,會報錯:Drop the named table. Table must first be disabled

 

  • 高級shell管理命令

status

顯示服務器狀態

status 'node001'

 

whoami

顯示HBase當前用戶

 

list

顯示當前所有的表

list

 

count

統計指定表的記錄數

count 'user'

 

describe

展示表結構信息

describe '

 

exists

檢查表是否存在,適用於表量特別多的情況

exists 'user'

 

is_enabled、is_disabled

檢查表是否啓用或禁用

is_enabled 'user'
is_disabled 'user'

 

alter

該命令可以改變表和列族的模式

爲當前表增加列族:

alter 'user', NAME => 'CF2', VERSIONS => 2

爲當前表刪除列族:

alter 'user', 'delete' => 'CF

 

disable/enable

禁用一張表/啓用一張表

disable 'user'
enable 'user'

 

drop

刪除一張表,記得在刪除表之前必須先禁用

disable 'user'
drop 'user'

 

truncate

禁用表-刪除表-創建表

truncate 'user'

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章