Hopefully I am doing something wrong and y'all can help me see it.

I am working on an application that utilizes Hbase for real-time queries.
The dependency on Hbase is not critical so if HBase is not available for any
reason the application should continue on doing its job without the data
from Hbase.  Essentially I want HBase Client to fail quickly if the request
to Hase is going to fail or take a long time to respond.  I have tested
various scenarios with Zookeeper running/not running and the master
running/not running.

Configuration:
Hbase 0.20.0 & Hadoop 0.20.1
Pseudo distributed mode
Java client using HTablePool


When ZK, Master, Regionserver and my app are running, I stop the Hbase
master/regionserver.  The HBaseClient then begins to complain:
16:26:51,273 INFO [HBaseClient] Retrying connect to server: /
192.168.1.55:44808. Already tried 0 time(s).
16:26:53,274 INFO [HBaseClient] Retrying connect to server: /
192.168.1.55:44808. Already tried 1 time(s).
...already tried 9 time(s)....
16:27:10,294 INFO [HbaseRPC] Server at /192.168.1.55:44808 not available
yet, Zzzzz...

**** This is despite the fact that I set hbase.pause to be 25 ms and the
retries.number = 2.  ****

I restart the Master and RegionServer and then send more client requests
through HTablePool.  It has the same "Retrying to connect to server:"
messages.  I noticed that the port number it is using is the old port for
the region server and not the new one assigned after the restart.  The
HbaseClient does not seem to recover unless I restart the client app.  When
I do not use HTablePool and only Htable it works fine.
Two issues:
1) Setting and using hbase.client.pause and hbase.client.retries.number
parameters.  I have rarely gotten them to work.  It seems to default to 2
sec and 10 retries no matter if I overwrite the defaults on the client and
the server.  Yes, I made sure my client doesn't have anything in the
classpath it might pick-up.
<property>
<name>hbase.client.pause</name>
<value>20</value>
</property>
<property>
<name>hbase.client.retries.number</name>
<value>2</value>
</property>
2) Running HTablePool under Pseudo mode, the client doesn't seem to refresh
with the new regionserver port after the master/regions are back up.  It
gets "stuck" with the info from the settings prior to the master goin down.

I would appreciate any thoughts or help.

Reply via email to