I am using HBase 1.1.0 and create HBase client connections like this:

try {
    Configuration config = HBaseConfiguration.create();
    connection = ConnectionFactory.createConnection(config);
}
catch (IOException e) {
    logger.info("Error {}", e);
}

However, I noticed that when ZooKeeper and HBase Master/Region servers are
down, the catch clause is never reached. The code runs as if the connection
is made, and connection.isClosed() returns false. So:

- What happens when I use this connection? Are the RPC calls buffered and
retried at some interval in background?

- How can I tell whether the connection is actually ready for use? Should I
try to do this, or just use it? My inclination is not to run a client
service without the underlying datastores all actually ready, but perhaps
this is not the idea with the new HBase API.

- Under what conditions is the IOException catch actually reached?


My goal is to be able to fail fast. Is that the wrong idea with this client?


Thanks,
Dmitry

Reply via email to