引言:
大家在使用hbase的過程中,總是面臨性能優化的問題,本文從hbase用戶端參數設定的角度,研究hbase用戶端資料批量插入性能優化的問題。事實勝于雄辯,資料比理論更有說服力,基于此,作者設計了這麼一個hbase資料插入性能優化實測實驗,希望大家用自己的伺服器跑出的結果,給自己一個值得信服的結論。
一、客戶單優化參數
1.put list size
hbase的put支援單條插入,也支援批量插入。
2. autoflush
autoflush指的是在每次調用hbase的put操作,是否送出到hbase server。 預設是true,每次會送出。如果此時是單條插入,就會有更多的io,進而降低性能
3.write buffer size
write buffer size在autoflush為false的時候起作用,預設是2mb,也就是當插入資料超過2mb,就會自動送出到server
4.wal
wal是write ahead log的縮寫,指的是hbase在插入操作前是否寫log。預設是打開,關掉會提高性能,但是如果系統出現故障(負責插入的region server 挂掉),資料可能會丢失。
參數
預設值
說明
jvm heap size
平台不同值不同自行設定
autoflush
true
預設逐條送出
put list size
1
支援逐條和批量
write buffer size
2m
與autoflush配合使用
write ahead log
預設開啟,需要手動關閉
…
二、源碼程式
三、叢集配置
3.1 伺服器硬體配置清單
序号
節點名稱
cup
記憶體
硬碟
帶寬
hmaster
2
hregionserver1
3
hregionserver2
4
5
6
7
3.2 用戶端硬體配置清單
裝置
cpu
四、測試報告
資料量
jvm
writebuffersize
wal
耗時
1000
512m
false
1024*1024*24
2000
5000
10000
20000
50000
100000
200000
500000
備注:該技術專題讨論正在群hadoop進階交流群:293503507同步直播中,敬請關注。