I'm trying to get the master stats in the same way the monitor server
does, but I keep having issues.
The code I'm using is from the GetMasterStats.java program:
MasterClientService.Iface client = null;
MasterMonitorInfo stats = null;
try {
client =
MasterClient.getConnectionWithRetry(HdfsZooInstance.getInstance());
stats = client.getMasterStats(null,
SecurityConstants.getSystemCredentials());
} finally {
if (client != null)
MasterClient.close(client);
}
The problem is that the HdfsZooInstance can never find the instance
data, even though it's there. I can create a ZooKeeperInstance just
fine, but passing that into the MasterClient fails the same way.
Caused by: java.lang.RuntimeException: Accumulo not initialized, there
is no instance id at /accumulo/instance_id
at
org.apache.accumulo.core.client.ZooKeeperInstance.getInstanceIDFromHdfs(ZooKeeperInstance.java:263)
at
org.apache.accumulo.server.conf.ZooConfiguration.getInstance(ZooConfiguration.java:65)
at
org.apache.accumulo.server.conf.ServerConfiguration.getZooConfiguration(ServerConfiguration.java:49)
at
org.apache.accumulo.server.conf.ServerConfiguration.getSystemConfiguration(ServerConfiguration.java:58)
at
org.apache.accumulo.server.client.HdfsZooInstance.<init>(HdfsZooInstance.java:62)
at
org.apache.accumulo.server.client.HdfsZooInstance.getInstance(HdfsZooInstance.java:70)
at
org.apache.accumulo.server.security.SecurityConstants.makeSystemPassword(SecurityConstants.java:58)
at
org.apache.accumulo.server.security.SecurityConstants.<clinit>(SecurityConstants.java:43)
... 91 more
Any ideas as to what I'm missing?