书接上回!!!
创建表——预分区
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 =