开发者社区> 问答> 正文

Region 如何预建分区?

Region 如何预建分区?

展开
收起
芯在这 2021-12-11 22:16:04 369 0
1 条回答
写回答
取消 提交回答
  • 预分区的目的主要是在创建表的时候指定分区数,提前规划表有多个分区,以及每个分区的区间范围,这样在存储的时候 rowkey 按照分区的区间存储,可以避免 region 热点问题。 通常有两种方案:

    方案 1:shell 方法

    create ‘tb_splits’, {NAME => ‘cf’,VERSIONS=> 3},{SPLITS => [‘10’,‘20’,‘30’]}

    方案 2: JAVA 程序控制

    · 取样,先随机生成一定数量的 rowkey,将取样数据按升序排序放到一个集合里;

    · 根据预分区的 region 个数,对整个集合平均分割,即是相关的 splitKeys;

    · HBaseAdmin.createTable(HTableDescriptor tableDescriptor,byte[][]splitkeys)可以指定预分区的 splitKey,即是指定 region 间的 rowkey 临界值。

    2021-12-11 22:16:28
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载