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部分;