溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

HBase中常用Shell操作有哪些

發(fā)布時間:2021-12-08 14:52:22 來源:億速云 閱讀:202 作者:小新 欄目:云計(jì)算

這篇文章將為大家詳細(xì)講解有關(guān)HBase中常用Shell操作有哪些,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

HBase為用戶提供了一個Shell終端進(jìn)行交互操作,通過“help get”命令可以獲得幫助信息。

【查詢相關(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'(注意有個逗號)
    獲取單行某個列簇的值:
    get 'tablename','rowkey','family'
    獲取單行某個列簇某一列的值:
    get 'tablename','rowkey','family:column'  
    通過timestamp獲取兩個版本的數(shù)據(jù):
    get 'tablename' ,'rowkey',{COLUMN=>'family:column',TIMESTAMP=>1321586238965}
    通過rowKey的前綴查詢單條記錄:
    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) 最簡單
create  'TD.VVCOUNT_PLAYLIST_VV', {NAME => 'v'}

(2) 數(shù)據(jù)7天過期
create 'TD.VVCOUNT_DAY_PLAYLIST_VV', {NAME => 'v', BLOOMFILTER => 'ROWCOL', COMPRESSION => 'SNAPPY', TTL => '604800', BLOCKSIZE => '32768', METADATA => {'ENCODE_ON_DISK' => 'true'}}
精簡版:
create 'YK.VVCOUNT_VIDEO_REAL_VV', {NAME => 'v', TTL => '604800'}

(3) 包含多個列族
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'
可以看到有兩個行鍵myrow-1和myrow-2,所以有兩行。colfaml為列簇名稱,q1、q2、q3為列名稱

【修改】
1. 更新一條記錄
    put 'member','scutshuxue','info:age' ,'99'


【刪除】
1. drop 表
    disable 'tablename'
    drop  'tablename'

2. 清空整張表
    truncate  'tablename'

3. 刪除整行
    deleteall 'tablename','rowkey'

4. 刪除一個列簇
    先將表disable(如果表中之前有數(shù)據(jù)的話,會把數(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) 移動Region

# 語法:move 'encodeRegionName', 'ServerName'
# encodeRegionName指的regioName后面的編碼,ServerName指的是master-status的Region Servers列表
# 示例
hbase(main)>move '4343995a58be8e5bbc739af1e91cd72d', 'db-41.xxx.xxx.org,60020,1390274516739'

(2) 開啟/關(guān)閉Region

# 語法:balance_switch true|false
hbase(main)> balance_switch

(3) 手動split

# 語法:split 'regionName', 'splitKey'

(4) 手動觸發(fā)major compaction

#語法:
#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)限

# 語法:user_permission <table>
# 例如,查看表t1的權(quán)限列表
hbase(main)> user_permission 't1'

(2) 分配權(quán)限

# 語法 : grant <user> <permissions> <table> <column family> <column qualifier> 參數(shù)后面用逗號分隔
# 權(quán)限用五個字母表示: "RWXCA".
# READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')
# 例如,給用戶‘test'分配對表t1有讀寫的權(quán)限,
hbase(main)> grant 'test','RW','t1'

(3) 回收權(quán)限

# 與分配權(quán)限類似,語法:revoke <user> <table> <column family> <column qualifier>
# 例如,收回test用戶在表t1上的權(quán)限
hbase(main)> revoke 'test','t1'

關(guān)于“HBase中常用Shell操作有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI