Hbase的region合并與拆分詳解-創(chuàng)新互聯(lián)

1、region 拆分機(jī)制

Hbase的region合并與拆分詳解

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、山西網(wǎng)站維護(hù)、網(wǎng)站推廣。
  • region中存儲(chǔ)的是大量的rowkey數(shù)據(jù) ,當(dāng)region中的數(shù)據(jù)條數(shù)過(guò)多的時(shí)候,直接影響查詢效率.當(dāng)region過(guò)大的時(shí)候.hbase會(huì)拆分region , 這也是Hbase的一個(gè)優(yōu)點(diǎn) .

  • HBase的region split策略一共有以下幾種:

  • 1、ConstantSizeRegionSplitPolicy

    • 0.94版本前默認(rèn)切分策略
  • 當(dāng)region大小大于某個(gè)閾值(hbase.hregion.max.filesize=10G)之后就會(huì)觸發(fā)切分,一個(gè)region等分為2個(gè)region。

    • 但是在生產(chǎn)線上這種切分策略卻有相當(dāng)大的弊端:切分策略對(duì)于大表和小表沒(méi)有明顯的區(qū)分。閾值(hbase.hregion.max.filesize)設(shè)置較大對(duì)大表比較友好,但是小表就有可能不會(huì)觸發(fā)分裂,極端情況下可能就1個(gè),這對(duì)業(yè)務(wù)來(lái)說(shuō)并不是什么好事。如果設(shè)置較小則對(duì)小表友好,但一個(gè)大表就會(huì)在整個(gè)集群產(chǎn)生大量的region,這對(duì)于集群的管理、資源使用、failover來(lái)說(shuō)都不是一件好事。
  • 2、IncreasingToUpperBoundRegionSplitPolicy

    • 0.94版本~2.0版本默認(rèn)切分策略

    • 切分策略稍微有點(diǎn)復(fù)雜,總體看和ConstantSizeRegionSplitPolicy思路相同,一個(gè)region大小大于設(shè)置閾值就會(huì)觸發(fā)切分。但是這個(gè)閾值并不像ConstantSizeRegionSplitPolicy是一個(gè)固定的值,而是會(huì)在一定條件下不斷調(diào)整,調(diào)整規(guī)則和region所屬表在當(dāng)前regionserver上的region個(gè)數(shù)有關(guān)系.

    • region split的計(jì)算公式是:
      regioncount^3 128M 2,當(dāng)region達(dá)到該size的時(shí)候進(jìn)行split
      例如:
      第一次split:1^3 256 = 256MB
      第二次split:2^3
      256 = 2048MB
      第三次split:3^3 256 = 6912MB
      第四次split:4^3
      256 = 16384MB > 10GB,因此取較小的值10GB
      后面每次split的size都是10GB了
  • 3、SteppingSplitPolicy

    • 2.0版本默認(rèn)切分策略

    • 這種切分策略的切分閾值又發(fā)生了變化,相比 IncreasingToUpperBoundRegionSplitPolicy 簡(jiǎn)單了一些,依然和待分裂region所屬表在當(dāng)前regionserver上的region個(gè)數(shù)有關(guān)系,如果region個(gè)數(shù)等于1,
      切分閾值為flush size * 2,否則為MaxRegionFileSize。這種切分策略對(duì)于大集群中的大表、小表會(huì)比 IncreasingToUpperBoundRegionSplitPolicy 更加友好,小表不會(huì)再產(chǎn)生大量的小region,而是適可而止。
  • 4、KeyPrefixRegionSplitPolicy

    • 根據(jù)rowKey的前綴對(duì)數(shù)據(jù)進(jìn)行分組,這里是指定rowKey的前多少位作為前綴,比如rowKey都是16位的,指定前5位是前綴,那么前5位相同的rowKey在進(jìn)行region split的時(shí)候會(huì)分到相同的region中。
  • 5、DelimitedKeyPrefixRegionSplitPolicy

    • 保證相同前綴的數(shù)據(jù)在同一個(gè)region中,例如rowKey的格式為:userid_eventtypeeventid,指定的delimiter為 ,則split的的時(shí)候會(huì)確保userid相同的數(shù)據(jù)在同一個(gè)region中。
  • 6、DisabledRegionSplitPolicy
    • 不啟用自動(dòng)拆分, 需要指定手動(dòng)拆分
      Hbase的region合并與拆分詳解

      2、region合并機(jī)制

1.1 region合并說(shuō)明

  • Region的合并不是為了性能, 而是出于維護(hù)的目的 .
  • 比如刪除了大量的數(shù)據(jù) ,這個(gè)時(shí)候每個(gè)Region都變得很小 ,存儲(chǔ)多個(gè)Region就浪費(fèi)了 ,這個(gè)時(shí)候可以把Region合并起來(lái),進(jìn)而可以減少一些Region服務(wù)器節(jié)點(diǎn)

1.2 如何進(jìn)行region合并

1.2.1 通過(guò)Merge類冷合并Region
  • 執(zhí)行合并前,==需要先關(guān)閉hbase集群==

  • 創(chuàng)建一張hbase表:
create 'test','info1',SPLITS => ['1000','2000','3000']
  • 查看表region
    Hbase的region合并與拆分詳解
  • 需求:

    需要把test表中的2個(gè)region數(shù)據(jù)進(jìn)行合并:
    test,,1565940912661.62d28d7d20f18debd2e7dac093bc09d8.
    test,1000,1565940912661.5b6f9e8dad3880bcc825826d12e81436.

  • 這里通過(guò)org.apache.hadoop.hbase.util.Merge類來(lái)實(shí)現(xiàn),不需要進(jìn)入hbase shell,直接執(zhí)行(==需要先關(guān)閉hbase集群==):
    hbase org.apache.hadoop.hbase.util.Merge test test,,1565940912661.62d28d7d20f18debd2e7dac093bc09d8. test,1000,1565940912661.5b6f9e8dad3880bcc825826d12e81436.

  • 成功后界面觀察

Hbase的region合并與拆分詳解

1.2.2 通過(guò)online_merge熱合并Region
  • ==不需要關(guān)閉hbase集群==,在線進(jìn)行合并

  • 與冷合并不同的是,online_merge的傳參是Region的hash值,而Region的hash值就是Region名稱的最后那段在兩個(gè).之間的字符串部分。

  • 需求:需要把test表中的2個(gè)region數(shù)據(jù)進(jìn)行合并:
    test,2000,1565940912661.c2212a3956b814a6f0d57a90983a8515.
    test,3000,1565940912661.553dd4db667814cf2f050561167ca030.

  • 需要進(jìn)入hbase shell:

    merge_region 'c2212a3956b814a6f0d57a90983a8515','553dd4db667814cf2f050561167ca030'
  • 成功后觀察界面
    merge_region 'c2212a3956b814a6f0d57a90983a8515','553dd4db667814cf2f050561167ca030'

  • 成功后觀察界面

網(wǎng)站標(biāo)題:Hbase的region合并與拆分詳解-創(chuàng)新互聯(lián)
URL標(biāo)題:http://muchs.cn/article8/csgjip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站改版、網(wǎng)站設(shè)計(jì)、軟件開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)