這篇文章將為大家詳細(xì)講解有關(guān)HBase中常用Shell操作有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
我們提供的服務(wù)有:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、鶴山ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的鶴山網(wǎng)站制作公司
HBase為用戶(hù)提供了一個(gè)Shell終端進(jìn)行交互操作,通過(guò)“help get”命令可以獲得幫助信息。
【查詢(xún)相關(guān)】
1. 進(jìn)入hbase shell console
$HBASE_HOME/bin/hbase shell
2. 查看有哪些表
list
3. 查看全表數(shù)據(jù)
scan 'tablename'
查看LIMIT數(shù)據(jù)
scan 'tablename',{LIMIT=>10}
4. 查看表描述
describe 'table'
5. 查看狀態(tài)
hbase(main):004:0> status
30 servers, 0 dead, 242.7000 average load
6. 獲得單行值
get 'tablename' ,'rowkey'(注意有個(gè)逗號(hào))
獲取單行某個(gè)列簇的值:
get 'tablename','rowkey','family'
獲取單行某個(gè)列簇某一列的值:
get 'tablename','rowkey','family:column'
通過(guò)timestamp獲取兩個(gè)版本的數(shù)據(jù):
get 'tablename' ,'rowkey',{COLUMN=>'family:column',TIMESTAMP=>1321586238965}
通過(guò)rowKey的前綴查詢(xún)單條記錄:
scan 'YK.VVCOUNT_VID_LIST',{FILTER=>"PrefixFilter('-1001808375')"}
結(jié)果:-1001808375_199894794 column=v:vids, timestamp=1457892147304, value=199503532,199503519
7. 查看表的總記錄數(shù)
count 'tablename'
8. 判斷表是否disable
is_disabled 'tablename'
9. 判斷表是否enable
is_enabled 'tablename'
10. 判斷表是否存在
exists 'tablename'
11. 獲取當(dāng)前count
【添加/創(chuàng)建】
1. 創(chuàng)建表
(1) 最簡(jiǎn)單
create 'TD.VVCOUNT_PLAYLIST_VV', {NAME => 'v'}
(2) 數(shù)據(jù)7天過(guò)期
create 'TD.VVCOUNT_DAY_PLAYLIST_VV', {NAME => 'v', BLOOMFILTER => 'ROWCOL', COMPRESSION => 'SNAPPY', TTL => '604800', BLOCKSIZE => '32768', METADATA => {'ENCODE_ON_DISK' => 'true'}}
精簡(jiǎn)版:
create 'YK.VVCOUNT_VIDEO_REAL_VV', {NAME => 'v', TTL => '604800'}
(3) 包含多個(gè)列族
create 'user','v','f'
2. 插入數(shù)據(jù)
put 'testtable' , 'myrow-1' , 'colfaml:q1' , 'value-1'
put 'testtable' , 'myrow-2' , 'colfaml:q2' , 'value-2'
put 'testtable' , 'myrow-2' , 'colfaml:q3' , 'value-3'
可以看到有兩個(gè)行鍵myrow-1和myrow-2,所以有兩行。colfaml為列簇名稱(chēng),q1、q2、q3為列名稱(chēng)
【修改】
1. 更新一條記錄
put 'member','scutshuxue','info:age' ,'99'
【刪除】
1. drop 表
disable 'tablename'
drop 'tablename'
2. 清空整張表
truncate 'tablename'
3. 刪除整行
deleteall 'tablename','rowkey'
4. 刪除一個(gè)列簇
先將表disable(如果表中之前有數(shù)據(jù)的話,會(huì)把數(shù)據(jù)清空
disbale 'tablename'
is_enabled 'tablename'
alter 'tablename' ,{NAME=>'m_id',METHOD=>'delete'}
enable 'tablename'
5. 刪除某行中的某列
delete 'testtable' , 'myrow-2' , 'colfaml:q2'
【管理相關(guān)】
1. Region管理
(1) 移動(dòng)Region
# 語(yǔ)法:move 'encodeRegionName', 'ServerName'
# encodeRegionName指的regioName后面的編碼,ServerName指的是master-status的Region Servers列表
# 示例
hbase(main)>move '4343995a58be8e5bbc739af1e91cd72d', 'db-41.xxx.xxx.org,60020,1390274516739'
(2) 開(kāi)啟/關(guān)閉Region
# 語(yǔ)法:balance_switch true|false
hbase(main)> balance_switch
(3) 手動(dòng)split
# 語(yǔ)法:split 'regionName', 'splitKey'
(4) 手動(dòng)觸發(fā)major compaction
#語(yǔ)法:
#Compact all regions in a table:
#hbase> major_compact 't1'
#Compact an entire region:
#hbase> major_compact 'r1'
#Compact a single column family within a region:
#hbase> major_compact 'r1', 'c1'
#Compact a single column family within a table:
#hbase> major_compact 't1', 'c1'
2. 權(quán)限管理
(1) 查看權(quán)限
# 語(yǔ)法:user_permission