HBase入庫性能問題

這個文檔置頂很久了,還是寫點東西吧。

HBase這個東西的入庫速度說實在的,在多列族的情況下表現很一般,實在是不值得提。

具體的原因是由於多列族在hbase的寫入機制決定的,有興趣的可以在網上找找資料,這裏我只說單列族的情況下的我的測試結果:


集羣的規模爲9(S)+1(M)+3(C)

16G內存

8核CPU

千兆網絡

8塊7200轉的SATA硬盤

不做raid


Client方式寫入:

單個Slave的寫入速度約爲8.3MB/s

整個集羣的寫入速度約爲83MB/s


BulkLoad模式寫入:

整個集羣(不算Client,就是9+1)的寫入速度(包含了創建HFile時間)約爲160MB/s


這裏需要說明一下:

1、我在寫入的時候有很高的硬盤I/O Wait,最高達到了300ms(一般在12ms-15ms之間是正常的),這個和我當前使用的硬件有直接關係(沒有更好的,只能這樣了)。

2、關於BulkLoad在增量寫表的過程中,性能表現及其難看,不建議採用。只是適合空表情況下數據導入。

3、對於Client的寫入模式,如果做了Secondary Index,很遺憾,寫入的速度也會下降,一般來說如果增加3個索引,整個集羣的寫入速度會下降到40MB/s。

4、如何提升速度?一般來說除了解決第一條硬盤I/O Wait的問題外,可通過提升單機內存以及增加單機硬盤數量。這裏我還未做過測試。當然,增加Slave也是可以的。

5、最後需要注意一下,在設定Region塊的邊界的時候儘量符合數據的實際情況,做到均勻的散列,這樣可以保證數據寫入時所有Slave的所有硬盤都在轉。

6、還是那句話,希望有過相關測試的朋友能夠指出我當前不足,提供更高的提升方式,歡迎郵件聯繫[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章