I am using 0.92.0, r15057 Regards Zavier
On Tue, Nov 6, 2012 at 5:39 PM, ramkrishna vasudevan < [email protected]> wrote: > Which version of hbase are you using ? > > Regards > Ram > > On Tue, Nov 6, 2012 at 3:06 PM, Gao Zavier <[email protected]> wrote: > > > In HConnectionManager, there are several functions to delete connections. > > All of them work fine except deleteAllConnections > > > > public static void deleteAllConnections(boolean stopProxy) { > > synchronized (HBASE_INSTANCES) { > > Set<HConnectionKey> connectionKeys = new HashSet<HConnectionKey>(); > > connectionKeys.addAll(HBASE_INSTANCES.keySet()); > > for (HConnectionKey connectionKey : connectionKeys) { > > *deleteConnection(connectionKey, stopProxy, false);* > > } > > *HBASE_INSTANCES.clear();* > > } > > } > > > > It calls deleteConnection for each connectionKey and clear map * > > HBASE_INSTANCES*. > > The issue is the HConnectionImplemention and the nested zookeeper > > connection may not clear (for the refcount is not zero). > > > > my client code is: > > > > import java.io.IOException; > > > > import org.apache.hadoop.conf.Configuration; > > import org.apache.hadoop.hbase.HBaseConfiguration; > > > > import org.apache.hadoop.hbase.client.HTable; > > import org.apache.hadoop.hbase.client.Get; > > import org.apache.hadoop.hbase.client.Result; > > import org.apache.hadoop.hbase.client.HConnectionManager; > > import org.apache.hadoop.hbase.util.Bytes; > > > > import org.apache.hadoop.hbase.client.HConnection; > > > > public class ConnectionTest { > > public static Result get(Configuration conf, > > String tableName, String rowKey) throws IOException > > { > > HTable table = new HTable(conf, tableName); > > Get get = new Get(Bytes.toBytes(rowKey)); > > get.setMaxVersions(); > > return getResult(table, get); > > } > > > > public static Result getResult(HTable table, > > Get get) throws IOException > > { > > Result result = table.get(get); > > > > HConnectionManager.deleteAllConnections(true); > > > > return result; > > } > > > > public static void main(String[] args) throws IOException, Exception > > { > > for (int i = 0; i < 100; ++i) { > > System.out.println("Connect to Hbase, attempts " + i + " > > times."); > > Configuration icfg = new Configuration(); > > icfg.setStrings("hbase.zookeeper.quorum", > > "192.168.23.7,192.168.23.8,192.168.23.9"); > > icfg.setStrings("zookeeper.znode.parent", "/hbase"); > > Configuration conf = HBaseConfiguration.create(icfg); > > > > String tableName = "QuickExpand"; > > String rowKey = "AbnormalDeal_600202"; > > > > Result result = ConnectionTest.get(conf, tableName, rowKey); > > Thread.currentThread().sleep(100); > > } > > } > > } > > > > > > and on my testing linuxbox, command: netstat -anp | grep ":2181" | wc -l > > shows the connections continue to increase. > > >
