Hi,
I had same exception when my master node died.
Then I found this code:
private HRegionLocation locateRegion(byte[] tableName, byte[] row, boolean
useCache) throws IOException {
if (closed) throw new IOException(toString() + " closed");
.......
and
public void abort(String msg, Throwable t)
{
if ((t instanceof KeeperException.SessionExpiredException)) {
try {
LOG.info("This client just lost it's session with ZooKeeper, trying to
reconnect.");
resetZooKeeperTrackers();
LOG.info("Reconnected successfully. This disconnect could have been caused by a network partition or a long-running GC pause, either way it's recommended that
you verify your environment.");
return;
} catch (ZooKeeperConnectionException e) {
LOG.error("Could not reconnect to ZooKeeper after session expiration,
aborting");
t = e;
}
}
if (t != null) LOG.fatal(msg, t); else
LOG.fatal(msg);
aborted = true;
closed = true;
}
So, it happens when client looses connection to ZooKeeper and cant reconnect,
Or, simply, somebody calls HConnection.close()
08.01.2013 12:41, Antony Neu пишет:
Can anyone tell me when this exception is thrown?
Regards,
Antony
Am 06.01.2013 12:35, schrieb [email protected]:
Hi there,
I'm having problems accessing HBase from within a MapReduce programme on my cluster. To locate the problem I've written a very simple test programme. It runs
fine on the master node, however on the other nodes I get the same error that was causing problems in the MapReduce programme:
java.io.IOException:
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation@2937d090
closed
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:251)
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:215)
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:173)
at TestHBase.main(TestHBase.java:29)
This occurs after these lines in the programme:
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.master", args[0]);
HTable table = new HTable(conf, "Table1");
Note: I'm note accessing HBase through the InputFormat. I simply would like to read out a few values in the setup-method of my mappers. hbase shell seems to
be working on all nodes just fine and I can ping and telnet the master node on port 60000 from the other nodes.
What could be the problem? Am i missing something? I've installed HBase with
cloudera manager CDH4.
Kind regards,
Antony