2017-03-21 112 views
0

我們在僞分佈模式和java api中使用hbase 1.2.4來讀取信息。我們的客戶端使20k rps到hbase,但它只加載CPU的30%,計算大約需要5個小時。我試圖拆分數據,並在同一臺機器上運行4個客戶端,並使用單獨的jvm,並且計算時間約爲1小時,運行時間爲80k rps。這不是滿足我的解決方案。分析顯示了很多連接線程的阻塞。 我也嘗試過使用hbase客戶端的ipc池選項,但它沒有提高性能太多。 如果有人有類似的東西,請給我一些建議。HBase多線程客戶端性能

回答

0

將連接池的大小設置得大得多,然後讀取線程的次數就完成了。

Configuration conf; 
... 
String poolSize = "128"; 
conf.set(HConstants.HBASE_CLIENT_IPC_POOL_SIZE, poolSize); 
conf.set(HConstants.HBASE_CLIENT_IPC_POOL_TYPE, "RoundRobin"); 
... 
Connection conn = ConnectionFactory.createConnection(conf); 
...