hbase最佳实践之手动切分region

  使用配置
内容纲要

概要说明


Region分裂是hyperbase最核心的功能之一,是实现分布式可扩展性的基础。

Hyperbase中,region分裂有多种触发策略可以配置,一旦触发,hyperbase会寻找分裂点,然后执行真正的分裂操作。

Region的拆分分为自动拆分和手动拆分,本文介绍手动拆分的两种方法。

本文介绍一下 TDH 平台上如何手动切分region的两种方法。

详细说明


方法一:通过hyperbase master的60010页面切分

该方法会把指定切分的region均分成大小相同的两个region。

案例说明

本案例将 hyperdrive表 hydrive_merge_test 的第一个region切分成两个region。

step1. 登录hyperbase 当前的 active master 的60010页面
  1. 任一hyperbase master角色的link链接打开
    file

  2. 点击 【Master】 下的主机名,登录到当前 active master 节点
    file

step2. 找到切分hyperdrive表的详情页面
  1. 在 【Table】栏找到需要切分的表,点击进入详情页面
    file

  2. 在表详情页面也可以看到具体的region信息
    可以看到,hyperdrive表hydrive_merge_test目前有4个region。
    file

step3. 通过 【Split】 手动切分region
  1. 确认需要切分的具体region
    本案例切分第一个region,region名字为:hydrive_merge_test,,1599470667949.d181bdfcbc2b025999e1ab1a8f7f52f9.

  2. 通过【Split】切分
    在 【Region Key】 一栏填写的region的hash值,也就是region 名字中最后一个字段两个 . 之间的值,即:d181bdfcbc2b025999e1ab1a8f7f52f9,然后点击【Split】按钮 。
    file

    跳转到下面页面,等待切分成功;
    file

    再次刷新表详情页面,region个数变成5个,切分成功。
    file

方法二:通过hbase shell命令行切分

案例说明

本案例中 hyperbase 表 hbase_split_100w 有2个region,通过hbase shell命令行手动split 。

split 命令使用说明
split 'tableName'
split 'namespace:tableName'
split 'regionName'
split 'tableName', 'splitKey'
split 'regionName', 'splitKey'
split ‘tableName’ 命令演示说明

该操作会将每一个region都平均切分成2个。

  1. 查看hyperbase表切分前的region信息

    file

  2. 通过hbase shell 命令行切分

    hbase(main):018:0> split  'hbase_split_100w'
    0 row(s) in 0.2290 seconds
  3. 再次查看hyperbase表切分后的region信息

    file

split ‘regionName’ 命令演示说明

该操作将指定的region平均切分成2个。

  1. 查看hyperbase表切分前的region信息

    file

  2. 通过hbase shell 命令行切分
    本案例手动切分名字为 37ec237b8a860c1ce2886b081fd19a7d 的region。

    hbase(main):020:0> split '37ec237b8a860c1ce2886b081fd19a7d'
    0 row(s) in 0.1270 seconds
  3. 再次查看hyperbase表切分后的region信息

    file

split ‘tableName’, ‘splitKey’ 命令演示说明

该操作将 splitkey 所在的region切分成2个。

  1. 查看hyperbase表切分前的region信息

    file

  2. 通过hbase shell 命令行切分
    本案例以rowkey "350782199001010774" 来手动切分region。

    hbase(main):015:0> split 'hbase_split_100w','350782199001010774'
    0 row(s) in 0.2020 seconds
    hbase(main):016:0>
  3. 再次查看hyperbase表切分后的region信息
    可以看到该表以 "350782199001010774" 为界,将此region一分为二。

    file

split ‘regionName’, ‘splitKey’ 命令演示说明

该操作将 splitkey 所在的region切分成2个。

  1. 查看hyperbase表切分前的region信息

    file

  2. 通过rowkey查询记录所在的region
    本案例以rowkey "350782199001010774" 来手动切分region。
    通过查询 hbase:meta 元数据表,来确定rowkey "350782199001010774" 记录所在的region。
    由下面的命令可知,rowkey "350782199001010774" 记录所在的region为 441ba5d1a3eb56e9a7c8d1fc0f10c107。

    hbase(main):016:0> scan 'base:meta',{STARTROW=>'hbase_split_100w,350782199001010774,9999999999999',REVERSED=>true,LIMIT=>1}
    ROW                                          COLUMN+CELL                                                                                                                    
    hbase_split_100w,310108199001012514,1610435 column=info:regioninfo, timestamp=1610435329237, value={ENCODED => 441ba5d1a3eb56e9a7c8d1fc0f10c107, NAME => 'hbase_split_100w,
    328979.441ba5d1a3eb56e9a7c8d1fc0f10c107.    310108199001012514,1610435328979.441ba5d1a3eb56e9a7c8d1fc0f10c107.', STARTKEY => '310108199001012514', ENDKEY => '';}           
    hbase_split_100w,310108199001012514,1610435 column=info:seqnumDuringOpen, timestamp=1610435329317, value=x00x00x00x00x00x00x00x01                                  
    328979.441ba5d1a3eb56e9a7c8d1fc0f10c107.                                                                                                                                   
    hbase_split_100w,310108199001012514,1610435 column=info:server, timestamp=1610435329317, value=xixia03:60020                                                               
    328979.441ba5d1a3eb56e9a7c8d1fc0f10c107.                                                                                                                                   
    hbase_split_100w,310108199001012514,1610435 column=info:serverstartcode, timestamp=1610435329317, value=1610345230450                                                      
    328979.441ba5d1a3eb56e9a7c8d1fc0f10c107.                                                                                                                                   
    1 row(s) in 0.0540 seconds
  3. 通过hbase shell 命令行切分

    hbase(main):017:0> split '441ba5d1a3eb56e9a7c8d1fc0f10c107','350782199001010774'
    0 row(s) in 0.1300 seconds
  4. 再次查看hyperbase表切分后的region信息
    可以看到该表以 "350782199001010774" 为界,将此region一分为二。
    file

这篇文章对您有帮助吗?

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

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

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

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