11.4 優化拆分和合並(region)

1、手動分割web

  • 爲了不拆分/合併風暴,關閉region自動拆分、合併,手動調用split和major_compact命令。shell

          1  設置hbase.hregion.max.filesize爲一個很大的值,如,100Gapache

          2 使用API或shell實現手動分割 、服務器

2、熱點問題app

  •   緩解region熱點問題函數

      手動將熱點region分割成一個或多個region,而後將子region負載分佈到多個region服務器上。工具

  •   什麼是表熱點?oop

     對於擁有多個region的表來講,大多數的region分佈並不均勻,即大多數region在同一個服務器上。spa

  •   解決表熱點問題?orm

    方法1: 使用HBase shell 或 HBaseAdmin類中的API,經過move()函數顯示的移動region到另一臺服務器上。

    方法2: 使用unassign()方法或者shell命令簡單地從當前服務器移除受影響表的region,master會當即將其部署到其餘

         region服務器上。

3、預分配

      1 建表時預分配:使用HexStringSplit

          create 'poidb', { NAME => 'info', COMPRESSION => 'snappy' },  {NUMREGIONS => 9, SPLITALGO      => 'HexStringSplit'}

     2 建表時預分配:指定startkey endkey

         create 'testtable', 'colfam1', { SPLITS => [ 'row-100', 'row-200','row-300', 'row-400' ] }

    3 查看60010 端口,hmaster進程,看新建表的分區。

4、合併region

    1 使用工具類:hbase org.apache.hadoop.hbase.util.Merge

        hbase org.apache.hadoop.hbase.util.Merge table \
        poidb,1c71c71c,1401350387344.163071a6eb98d44e0e6d087ff9e48d53. \
        poidb,38e38e38,1401350387344.86b9bb5b0989dcfe955c18f4a74450c7. 

    2 原理:在每一個region中讀取存儲文件,並將它們合併成一個新的存儲文件。

相關文章
相關標籤/搜索