1. 程式人生 > >關於Hbase客戶端和regionserver之間的單連線

關於Hbase客戶端和regionserver之間的單連線

 

2013年02月17日 17:45:27 楊步濤的部落格 閱讀數:4417更多

所屬專欄: 大資料 HBase儲存

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/yangbutao/article/details/8585841

利用Hbase的客戶端進行Get或者scan操作時,在regionserver端用netstat -anp|grep 60020時,發現每一個Hbase客戶端只有一個和該regionserver的連線,無論hbase client是否開啟了多個執行緒進行併發操作。 後來翻了一下原始碼,果然是這樣的。參見下面的原始碼截圖,

對同一個目的地的RegionServer來說,connection只有一個。這樣設計的初衷是為了共享連線,減少維護多個連線的開銷。

當然也可以用在hbase client的 API中設定採用多個連線的方式,如

conf.set("hbase.client.ipc.pool.type","RoundRobin");

conf.set("hbase.client.ipc.pool.size", "200");

table = new HTablePool(conf, 400,PoolType.RoundRobin);

 

可以參考一下兩個連結

http://comments.gmane.org/gmane.comp.java.hadoop.hbase.user/11534

https://issues.apache.org/jira/browse/HBASE-2939