關於Hbase客戶端和regionserver之間的單連線
阿新 • • 發佈:2018-12-11
2013年02月17日 17:45:27 楊步濤的部落格 閱讀數:4417更多
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 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