深度学习 Region 如何预建分区?
预分区的目的主要是在创建表的时候指定分区数,提前规划表有多个分区, 以及每个分区的区间范围,这样在存储的时候 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 临界值。 |
蓝海大脑 京ICP备18017748号-1