HBase Client Configuration -- Pause and Retries
-----------------------------------------------
Key: HBASE-1843
URL: https://issues.apache.org/jira/browse/HBASE-1843
Project: Hadoop HBase
Issue Type: Improvement
Components: client
Affects Versions: 0.20.0
Reporter: Barney Frank
Priority: Critical
The ability to set the number of retries and the pause length between them on
the HBaseClient through HBaseConfiguration.
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.
Issue:
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>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.