栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hbase之预分区

Hbase之预分区

一、预分区设置

        创建表时,只有一个分区region,当该分区达到一定的值时,会进行分区,此时分区会影响Hbase的性能。而且每一个region维护着startRow与endRow,如果加入的数据符合某个region维护的rowKey范围,则该数据交给这个region维护。因此可以添加预分区。

1.手动设定预分区

create 'group','info',SPLITS =>['10','20','30','40']

2.生成16进制序列预分区

create 'group2','info',{NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'}

3.按照文件内容预分区

文件内容:spilt.txt
aaaa
bbbb
cccc
dddd
create 'group3', 'info',SPLITS_FILE => '/opt/module/hive/datas/spilt.txt'

 4.根据API分区

public class HbaseConnect {
    public static void main(String[] args) throws IOException {
        // 1.获取配置类
        Configuration conf = HbaseConfiguration.create();

        // 2.给配置类添加配置
        conf.set("hbase.zookeeper.quorum","hadoop102,hadoop103,hadoop104");

        // 3.获取连接
        Connection connection = ConnectionFactory.createConnection(conf);

        // 4.获取admin
        Admin admin = connection.getAdmin();

        // 5.获取descriptor的builder
        TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(TableName.valueOf("bigdata", "group4"));
        // 6. 添加列族
        builder.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("info")).build());

        // 7.创建对应的切分
        byte[][] splits = new byte[3][];
        splits[0] = Bytes.toBytes("aaaa");
        splits[1] = Bytes.toBytes("bbbb");
        splits[2] = Bytes.toBytes("cccc");

        // 8.创建表
        admin.createTable(builder.build(),splits);
        // 9.关闭资源
        admin.close();
        connection.close();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/699813.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号