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的連線池。
參考:
怎樣提高hbase的入庫效能
hbase寫資料首先先寫入memstore。當memstore滿64mb以後,會flush到disk上而成為storefile。當storefile數量超過3時,會啟動compaction過程將它們合併為乙個storefile。這個過程中會刪除一些timestamp過期的資料。比方update的資料...
如何提高hbase的入庫效能
hbase寫資料首先先寫入memstore,當memstore滿64mb以後,會flush到disk上而成為storefile。當storefile數量超過3時,會啟動compaction過程將它們合併為乙個storefile。這個過程中會刪除一些timestamp過期的資料,比如update的資料...
提高HBase寫效能
以下為使用hbase一段時間的三個思考,由於在記憶體充足的情況下hbase能提供比較滿意的讀效能,因此寫效能是思考的重點。希望讀者提出不同意見討論 1 autoflush false的影響 2 hbase.hregion.max.filesize應該設定多少合適 hbase中hfile的預設最大值 ...