HBase的优化:HBASE创建表的优化

本文介绍了HBase表的设计优化,包括预创建regions以加速批量写入,合理设计row key以利用字典序特性,控制column family数量减少I/O,设置In Memory提升读取速度,以及调整Max Version和Time To Live确保数据管理。此外,讨论了compact和split策略,以及手动major compaction在优化中的作用。
摘要由CSDN通过智能技术生成

1. 表的设计

1.1 Pre-Creating Regions

默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡。

public static boolean createTable(HBaseAdmin admin, HTableDescriptor table, byte[][] splits) 
throws IOException { 
  try { 
    admin.createTable(table, splits); 
    return true; 
  } catch (TableExistsException e) { 
    logger.info("table " + table.getNameAsString() + " already exists"); 
    // the table already exists... 
    return false; 
  } 
} 
  
public static byte[][] getHexSplits(String startKey, String endKey, int numRegions) { 
  byte[][] splits = new byte[numRegions-1][]; 
  BigInteger lowestKey = new BigInteger(startKey, 16); 
  BigInteger highestKey = new BigInteger(endKey, 16); 
  BigInteger range = h
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值