hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shengjie Min <kelvin....@gmail.com>
Subject using 0.92.1 HbasePool - java.io.IOException: org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@413d26d2 closed
Date Tue, 30 Oct 2012 18:07:49 GMT
Hi guys,

In my case I am using 0.92.1 HTablePool, my code works like the following:

initializing one HTablePool using a shared HBaseConfiguration. so all my
connections will be sharing the same conf and HConnection.

so when the hbase query comes, the HTablePool.getTable(tablename) gets
called.

1. if pool is empty, it creates a PooledHTable for me

2. if pool is avaiable:

I get a PooledHtable instance, once I am done with query, I call
PooledHtable.close(), it will return PooledHtable instance to the pool
without closing any Hconnection in the shared Conf object.

3. if pool is out:
I get a normal Htable instance, because HTablePool.getTable will call
findOrCreateTable(), once there is not table available, it creates a
HbaseTable instance instead of PooledHbase instance in this case, once I am
done with query, I call Htable.close(), it will just release Htable
instance and close the associated connections. which makes good sense.

So only pooledHtable gets put back to the pool and PooledHtable.close()
will never try to close any Hconnection. But I am intermittently getting
the exception below:

! Caused by: java.io.IOException:
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@413d26d2closed

! at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:794)

! at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:782)

! at org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:249)

! at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:213)

! at
org.apache.hadoop.hbase.client.HTableFactory.createHTableInterface(HTableFactory.java:36)

I have no clue why I ended up having closed HConnectionImplementation
returned in the pool. But i wonder it can be caused by the way I use
HbasePool.

 In jira, there is a relative bug reported:
https://issues.apache.org/jira/browse/HBASE-6956

Any ideas?


-- 
All the best,
Shengjie Min

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message