hadoop version: 0.20.2
hbase version: 0.20.6
1 master , 7 slaves/regionservers : 4cpus, 34G memory hbase heap size: 15G
3 zookeepers: 2cpus, 8G memeory
now, there are 1573 regions(about 1T). It spends 10ms-200ms when random
accessing if not writing.
We need to put 200G data (about 0.4billion rows) at a time. It maybe spend
20+s when random accessing.
code like this:
HTablePool tablePool = new HTablePool(config, 20);
HTable table = tablePool.getTable("productDB");
table.setWriteBufferSize(1024*1024*24);
List<Put> puts = new ArrayList<Put>();
while(true){
Put put = new Put(Bytes.toBytes(id));
put.add(...);
put.setWriteToWAL(false);
puts.add(put);
if(rows % 1000 == 0){
table.getWriteBuffer().addAll(puts);
table.flushCommits();
puts.clear();
}
}
Thanks for any help
--
Derek Liu