怎样提高hbase的入库性能
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的连接池。
參考: