真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

如何實現(xiàn)Hbase的region合并和拆分?-創(chuàng)新互聯(lián)

1、region 拆分機制

我們提供的服務有:成都網站建設、成都做網站、微信公眾號開發(fā)、網站優(yōu)化、網站認證、阜新ssl等。為上1000家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的阜新網站制作公司
  • region中存儲的是大量的rowkey數(shù)據(jù) ,當region中的數(shù)據(jù)條數(shù)過多的時候,直接影響查詢效率.當region過大的時候.hbase會拆分region , 這也是Hbase的一個優(yōu)點 .

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

  • 1、ConstantSizeRegionSplitPolicy

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

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

    • 0.94版本~2.0版本默認切分策略

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

    • region split的計算公式是:
      regioncount^3 128M 2,當region達到該size的時候進行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版本默認切分策略

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

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

    • 保證相同前綴的數(shù)據(jù)在同一個region中,例如rowKey的格式為:userid_eventtypeeventid,指定的delimiter為 ,則split的的時候會確保userid相同的數(shù)據(jù)在同一個region中。
  • 6、DisabledRegionSplitPolicy
    • 不啟用自動拆分, 需要指定手動拆分

      2、region合并機制

1.1 region合并說明

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

1.2 如何進行region合并

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

  • 創(chuàng)建一張hbase表:
create 'test','info1',SPLITS => ['1000','2000','3000']
  • 查看表region
    如何實現(xiàn)Hbase的region合并和拆分?
  • 需求:

    需要把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.

  • 成功后界面觀察

如何實現(xiàn)Hbase的region合并和拆分?

1.2.2  通過online_merge熱合并Region
  • ==不需要關閉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è)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


分享名稱:如何實現(xiàn)Hbase的region合并和拆分?-創(chuàng)新互聯(lián)
鏈接URL:http://weahome.cn/article/disego.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部