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) { //start:001,endkey:100,10region [001,010] [011,020] byte[][] splits = new byte[numRegions-1][];
1.1 Pre-Creating Regions 默许情形下,在创立HBase表的时