您好,登錄后才能下訂單哦!
region中存儲的是大量的rowkey數據 ,當region中的數據條數過多的時候,直接影響查詢效率.當region過大的時候.hbase會拆分region , 這也是Hbase的一個優點 .
HBase的region split策略一共有以下幾種:
1、ConstantSizeRegionSplitPolicy
當region大小大于某個閾值(hbase.hregion.max.filesize=10G)之后就會觸發切分,一個region等分為2個region。
2、IncreasingToUpperBoundRegionSplitPolicy
0.94版本~2.0版本默認切分策略
切分策略稍微有點復雜,總體看和ConstantSizeRegionSplitPolicy思路相同,一個region大小大于設置閾值就會觸發切分。但是這個閾值并不像ConstantSizeRegionSplitPolicy是一個固定的值,而是會在一定條件下不斷調整,調整規則和region所屬表在當前regionserver上的region個數有關系.
3、SteppingSplitPolicy
2.0版本默認切分策略
4、KeyPrefixRegionSplitPolicy
5、DelimitedKeyPrefixRegionSplitPolicy
執行合并前,==需要先關閉hbase集群==
create 'test','info1',SPLITS => ['1000','2000','3000']
需求:
需要把test表中的2個region數據進行合并:
test,,1565940912661.62d28d7d20f18debd2e7dac093bc09d8.
test,1000,1565940912661.5b6f9e8dad3880bcc825826d12e81436.
這里通過org.apache.hadoop.hbase.util.Merge類來實現,不需要進入hbase shell,直接執行(==需要先關閉hbase集群==):
hbase org.apache.hadoop.hbase.util.Merge test test,,1565940912661.62d28d7d20f18debd2e7dac093bc09d8. test,1000,1565940912661.5b6f9e8dad3880bcc825826d12e81436.
==不需要關閉hbase集群==,在線進行合并
與冷合并不同的是,online_merge的傳參是Region的hash值,而Region的hash值就是Region名稱的最后那段在兩個.之間的字符串部分。
需求:需要把test表中的2個region數據進行合并:
test,2000,1565940912661.c2212a3956b814a6f0d57a90983a8515.
test,3000,1565940912661.553dd4db667814cf2f050561167ca030.
需要進入hbase shell:
merge_region 'c2212a3956b814a6f0d57a90983a8515','553dd4db667814cf2f050561167ca030'
成功后觀察界面
merge_region 'c2212a3956b814a6f0d57a90983a8515','553dd4db667814cf2f050561167ca030'
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。