hbase写数据首先先写入memstore,当memstore满64MB以后,会flush到disk上而成为storefile。当storefile数量超过3时,会启动compaction过程将它们合并为一个storefile。这个过程中会删除一些timestamp过期的数据,比如update的数据。而当合并后的storefile大小大于hfile默认最大值时,会触发split动作,将它切分成两个region。
1、修改hbase的BufferSize,并禁用hbase的自动提交功能;
table.setWriteBufferSize(1024*1024*10);
table.setAutoFlush(false);
2、禁用hbase的预写日志功能(WAL);
p.setWriteToWAL(false); //p为已近add数据后的Put对象
3、为flush添加线程池,为compact添加线程池,同时注释掉split部分;
4、将HBaseClient添加到RegoinServer的连接池。
参考:
http://blog.csdn.net/kalaamong/article/details/7275242
原文:http://blog.csdn.net/zcc_0015/article/details/24092523