hbase的寫效率還是很高的,但其隨機讀取效率並不高
可以採取一些優化措施來提高其效能,如:
1. 啟用lzo壓縮,見這裡
2. 增大hbase.regionserver.handler.count數為100
3. 增大hfile.block.cache.size為0.4,提高cache大小
4. 增大hbase.hstore.blockingstorefiles為15
5. 啟用bloomfilter,在hbase0,89中可以設定
6.put時可以設定setautoflush為false,到一定數目後再flushcommits
在14個region server的集群上,新建立乙個lzo壓縮表
測試的put和get的效能如下:
1. put資料:
單執行緒灌入1.4億資料,共花費50分鐘,每秒能達到4萬個,這個效能確實很好了,不過插入的value比較小,只有不到幾十個位元組
多執行緒put,沒有測試,因為單執行緒的效率已經相當高了
2. get資料:
在沒有任何block cache,而且是random read的情況:
單執行緒平均每秒只能到250個左右
6個執行緒平均每秒能達到1100個左右
16個執行緒平均每秒能達到2500個左右
有blockcache(曾經get過對應的row,而且還在cache中)的情況:
單執行緒平均每秒能到3600個左右
6個執行緒平均每秒能達到1.2萬個左右
16個執行緒平均每秒能達到2.5萬個左右
**
Hbase效能優化
1 表的設計 1.1 pre creating regions 預設情況下,在建立hbase表的時候會自動建立乙個region分割槽,當匯入資料的時候,所有的hbase客戶端都向這乙個region寫資料,直到這個region足夠大了才進行切分。一種可以加快批量寫入速度的方法是通過預先建立一些空的re...
Hbase效能優化
以下為使用hbase一段時間的幾個思考,由於在記憶體充足的情況下hbase能提供比較滿意的讀效能,因此寫效能是思考的重點。希望讀者提出不同意見討論 1 autoflush false 2 hbase.hregion.max.filesize hbase中hfile的預設最大值 hbase.hregi...
HBASE效能測試
之前測試過hbase的引數對效能影響,今天的測試主要針對寫吞吐量,通過對比不同客戶端的數量,以及插入量,來看看hbase寫的情況下,大概有多少每秒插入。測試硬體 8vcore,32g記憶體 8臺機器,5個nodemanager region server 大家可能知道每個map,reduce 預設1...