HBase 数据入库(2)-预分区建表

书接上回!!!

创建表——预分区

1 在不进行预分区时,默认建表只有一个region,在数据写入时所有的数据都会写入到这一个region,当这个region达到某一量时,无法承受不断增长的数据,就会进行分片split,由原来的一个region 分成两个region,这样数据都往一个region上写将会有写热点的问题,split时会消耗大量的集群I/O

2 建表时进行预分区,数据写入到多个region中,就不会存在写热点问题,同时,减少的数据split的几率,提高数据写入效率

3 创建表时创建预分区

String[] splitStr = {"10","20","30","40","50","60","70","80","90","99"}  // 根据rowkey特征进行分区的设定

public boolean CreateTableAsync(String tablename, String columnFamily, String[] splitStr)
{
    TableName tName = TableName.valueOf(tablename);
    try
    {
        if(!hbaseAdmin.tableExists(tName))
        {
            HTableDescriptor newHTD = new HTableDescriptor(tName); // 表名
            HColumnDescriptor newHCD =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值