region中存儲的是大量的rowkey數(shù)據(jù) ,當region中的數(shù)據(jù)條數(shù)過多的時候,直接影響查詢效率.當region過大的時候.hbase會拆分region , 這也是Hbase的一個優(yōu)點 .
HBase的region split策略一共有以下幾種:
1、ConstantSizeRegionSplitPolicy
當region大小大于某個閾值(hbase.hregion.max.filesize=10G)之后就會觸發(fā)切分,一個region等分為2個region。
2、IncreasingToUpperBoundRegionSplitPolicy
0.94版本~2.0版本默認切分策略
切分策略稍微有點復雜,總體看和ConstantSizeRegionSplitPolicy思路相同,一個region大小大于設置閾值就會觸發(fā)切分。但是這個閾值并不像ConstantSizeRegionSplitPolicy是一個固定的值,而是會在一定條件下不斷調整,調整規(guī)則和region所屬表在當前regionserver上的region個數(shù)有關系.
3、SteppingSplitPolicy
2.0版本默認切分策略
4、KeyPrefixRegionSplitPolicy
5、DelimitedKeyPrefixRegionSplitPolicy
執(zhí)行合并前,==需要先關閉hbase集群==
create 'test','info1',SPLITS => ['1000','2000','3000']
需求:
需要把test表中的2個region數(shù)據(jù)進行合并:
test,,1565940912661.62d28d7d20f18debd2e7dac093bc09d8.
test,1000,1565940912661.5b6f9e8dad3880bcc825826d12e81436.
這里通過org.apache.hadoop.hbase.util.Merge類來實現(xiàn),不需要進入hbase shell,直接執(zhí)行(==需要先關閉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數(shù)據(jù)進行合并:
test,2000,1565940912661.c2212a3956b814a6f0d57a90983a8515.
test,3000,1565940912661.553dd4db667814cf2f050561167ca030.
需要進入hbase shell:
merge_region 'c2212a3956b814a6f0d57a90983a8515','553dd4db667814cf2f050561167ca030'
成功后觀察界面
merge_region 'c2212a3956b814a6f0d57a90983a8515','553dd4db667814cf2f050561167ca030'
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。