2017-07-19 130 views
1

我在Java客戶端的PUT性能上做了一些工作,但結果並不明確。Put性能 - Hbase Java客戶端

問題出在這裏: 在HBase中放置什麼是最好的方法?一個1000柱(4個家庭),或1000放置與單列?也許4每個放250列?

從理論上講,最好的策略是什麼?

PS:我不能使用批處理,因爲我需要Wals for Solr。

謝謝。

回答

1

爲了獲得良好的寫入操作性能,您應該爲單行使用一個Put。在其他情況下,性能將顯着降低,因爲HBase會爲行鍵創建鎖定,在這種情況下,同步時會浪費大量時間。在每行單次寫入的情況下,寫入性能將與大容量負載相當。

+1

從最小測試environement的每個巨大的行17s到1.5s。非常感謝。 – SBA

1

首先使用盡可能少的色譜柱系列(我在此提供了answer的詳細信息)。其次,你不僅要指定你的寫模式,還要指定讀模式。 HBase最適合「一次寫入並閱讀很多」場景。因此,你想設計你的表,因此它將提供最快的數據訪問。這個標準將決定你是否需要「高」或「寬」表。查看「HBase in Action」的HBase table design一章。

+0

謝謝@gorros你的答案。問題不在於HBase中的模式設計。我已經花了很多時間在這個領域。我在最終解決方案中設法保留的最少數量的家庭是4.他們沒有相同的「寬度」,但他們尊重HBase設計的許多最佳實踐。 – SBA

+0

當然,我明白。也許我沒有正確地把握問題的背景。 – gorros