HBase Region 拆分與合併

2022-09-19 19:03:15 字數 1225 閱讀 9127

region 自動拆分

hbase region 的自動拆分有 6 種觸發策略,如下:

regionsplitpolicy 自動拆分策略的使用

hbase.regionserver.region.split.policy

org.apache.hadoop.hbase.regionserver.increasingtoupperboundregionsplitpolicy

手動拆分

region 的預拆分(pre-splitting)

預拆分(pre-splitting)就是在建表的時候就定義好了拆分點的演算法,所以叫預拆分。

手動指定拆分點:在建表的時候跟上 splits 引數

hbase(main):029:0> create 'split01','cf1',splits=>['1000000','2000000','3000000']
region 強制拆分(forcedsplits)

除了預拆分和自動拆分以外,你還可以對執行了一段時間的 region 進行強制地手動拆分(forcedsplits)。方法是呼叫 hbase shell 的 split方法。

[root@node-01 ~]# hbase shell $> split'test_table1,c,1476406588669.96dd8c68396fda69.','c_110'
這個就是把 test_table1,c,1476406588669.96dd8c68396fda69 這個 region 從新的拆分點 c_110 處拆成 2 個region。

region 可以被拆分,也可以被合併。不過 region 的合併(merge)並不是為了效能考慮的,而更多地是出於維護的目的被創造出來的。

何時合併

比如刪了大量的資料,每個region都變小了,這個時候分成這麼多個region就有點浪費了,可以把region合併起來,然後可以減少一些regionserver伺服器來節省成本。

如何合併

regionserver 執行多少個 region 比較合理

regionserver的堆記憶體大小0.4(hbase.regionserver.global.memstore.size)/128m(hbase.hregion.memstore.flush.size)列族的數量'

hbase 的列族不宜過多

PostgreSQL 中關於字串拆分與合併

with person name as select c.id,array to string array agg distinct p.c name as p name from biz notification config c join biz notification person p on...

垂直拆分與水平拆分

垂直拆分 垂直拆分是指資料表列的拆分,把一張列比較多的表拆分為多張表 通常我們按以下原則進行垂直拆分 把不常用的字段單獨放在一張表。把text,bigint等大字段拆分出來放在附表中。經常組合查詢的列放在一張表中 聯合索引 垂直拆分的表在查詢的時候用join關鍵字連線起來即可。水平拆分 水平拆分是指...

Mycat垂直拆分與水平拆分

垂直拆分 垂直拆分是根據資料庫裡面的資料表的業務進行拆分,比如 乙個資料庫裡面既存在使用者資料,又存在訂單資料,那麼垂直拆分可以把使用者資料放入到使用者庫,把訂單資料放到訂單庫。垂直分表是對資料表進行垂直拆分的一種方式,常見是把乙個多欄位的大表按常用字段和非常用字段進行拆分,每個表裡面的資料記錄數一...