hbase最佳实践之region离线合并

  性能相关
内容纲要

概要说明

本文介绍离线合并 region 的操作方法;


详细说明

介绍两种 merge_region 的操作:

  1. hbase 最佳实践之 region 在线合并
  2. hbase 最佳实践之 region 离线合并

离线合并region的前提

  1. hyperbase 服务处于停止状态;
  2. hdfs 上 /hyperbase1/data 目录表信息是存在的;
  3. 控制好集群内 region 数量,保证 merge 完之后的 region 上线后,尽量不超过单个RS 1000个的水平;

离线合并region的影响

  1. 离线合并过程中,hyperbase 服务处于不可用状态;
  2. 上线过程中可能会出现大量 RIT,需要修复;

具体操作

hbase 表和 hyperdrive 表的操作都是一样的。本文档以 hbase 表 hbase_merge_test 为例演示离线合并 region 的过程。

1、查看hyperbase表的原始状态
  • HMaster的60010页面查看
    通过hyperbase服务的 active HMaster角色60010页面的【Table】栏查看,可以看到 hbase_merge_test 表最开始有9个region。

    file

  • 通过HFile查看meta中表的region信息
    通过下面命令查看,注意需要根据实际情况进行替换,不能直接复制。

    ### hbase org.apache.hadoop.hbase.io.hfile.HFile -e -f  | grep | awk -F/ '{print substr($1,4)}' | uniq
    hbase org.apache.hadoop.hbase.io.hfile.HFile -e -f /hyperbase1/data/hbase/meta/1588230740/info/930ddff9cae84d0a8821ff51b21eefc9 | grep hbase_merge_test | awk -F/ '{print substr($1,4)}' | uniq

    file

2、离线合并region前确保 hbase:meta 中表的状态一致
  • 如果第一步中,【HMaster的60010页面查看】和【通过HFile查看meta中表的region信息】获取到的表的region信息是一致的,则不需要操作此步骤。

  • 此步骤是在hyperbase停止的情况下操作的。

  • 需要准备好dstool工具,可以参考该文档:hyperbase运维之dstool的使用

    cd TDH-Client/dstools/bin
    ./runDSTools.sh hbase:meta

    file

3、开始离线合并region

  • 此合并操作,要求对相邻的两两region进行合并。
  • 如果region name中包含二进制\x00之类的要做转义,如\x00改成\x00;
  • region的信息中有空格,需要在region外面包一层引号;
  • 如果要多次merge,第一轮merge结束后,离线运行dstool,更新这张表在meta表中新的region信息(merge后,region信息已经发生变化, 需要重新生成),再重复下面的步骤。
  • 本案例中合并最前面的两个region和最后面的两个region。

    ### hbase org.apache.hadoop.hbase.util.Merge [-Dfs.defaultFS=hdfs://nn:port]  "" ""
    hbase org.apache.hadoop.hbase.util.Merge hbase_merge_test "hbase_merge_test,,1599184648498.d3196371c5466517810311ad2db04310." "hbase_merge_test,220502199001012292,1599182367446.6749275ef1389fd8dd68b5476b6a3e3a."

4、离线运行dstool,更新这张表在meta表中新的region信息

  • merge后,region信息已经发生变化, 需要重新生成,以下两步都要操作。
  • 本案例操作了2次merge,所以最终region数是7个。

    cd TDH-Client/dstools/bin
    ./runDSTools.sh hbase_merge_test
    ./runDSTools.sh

    file

5、启动hyperbase服务,并检查服务是否异常
  • hyperbase启动成功后可以先运行下DSTools,确保没有异常。

    cd TDH-Client/dstools/bin
    ./runDSTools.sh hbase_merge_test
    ./runDSTools.sh
  • 通过active HMaster的60010页面查看表是否正常
    可以看到第一个region和最后一个region是合并后的。
    file

  • 可以正常查询hbase表,合并完成。
    file

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。