HBASE-5596 Few minor bugs from HBASE-5209 (David S. Wang)

git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1305661 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jonathan Hsieh 2012-03-26 23:06:02 +00:00
parent 080206de01
commit 3fd6997380
4 changed files with 25 additions and 7 deletions

View File

@ -71,7 +71,6 @@ public class ClusterStatus extends VersionedWritable {
*/
private static final byte VERSION_MASTER_BACKUPMASTERS = 2;
private static final byte VERSION = 2;
private static final String UNKNOWN_SERVERNAME = "unknown";
private String hbaseVersion;
private Map<ServerName, HServerLoad> liveServers;
@ -177,11 +176,11 @@ public class ClusterStatus extends VersionedWritable {
return (getVersion() == ((ClusterStatus)o).getVersion()) &&
getHBaseVersion().equals(((ClusterStatus)o).getHBaseVersion()) &&
this.liveServers.equals(((ClusterStatus)o).liveServers) &&
this.deadServers.equals(((ClusterStatus)o).deadServers) &&
this.deadServers.containsAll(((ClusterStatus)o).deadServers) &&
Arrays.equals(this.masterCoprocessors,
((ClusterStatus)o).masterCoprocessors) &&
this.master.equals(((ClusterStatus)o).master) &&
this.backupMasters.equals(((ClusterStatus)o).backupMasters);
this.backupMasters.containsAll(((ClusterStatus)o).backupMasters);
}
/**
@ -344,7 +343,7 @@ public class ClusterStatus extends VersionedWritable {
Bytes.readByteArray(in)));
}
} else {
this.master = new ServerName(UNKNOWN_SERVERNAME, -1,
this.master = new ServerName(ServerName.UNKNOWN_SERVERNAME, -1,
ServerName.NON_STARTCODE);
this.backupMasters = new ArrayList<ServerName>(0);
}

View File

@ -73,6 +73,11 @@ public class ServerName implements Comparable<ServerName> {
SERVERNAME_SEPARATOR + Addressing.VALID_PORT_REGEX +
SERVERNAME_SEPARATOR + Addressing.VALID_PORT_REGEX + "$");
/**
* What to use if server name is unknown.
*/
public static final String UNKNOWN_SERVERNAME = "#unknown#";
private final String servername;
private final String hostname;
private final int port;
@ -291,4 +296,4 @@ public class ServerName implements Comparable<ServerName> {
return SERVERNAME_PATTERN.matcher(str).matches()? new ServerName(str):
new ServerName(str, NON_STARTCODE);
}
}
}

View File

@ -168,7 +168,7 @@ class ActiveMasterManager extends ZooKeeperListener {
LOG.info("Adding ZNode for " + backupZNode +
" in backup master directory");
ZKUtil.createEphemeralNodeAndWatch(this.watcher, backupZNode,
HConstants.EMPTY_BYTE_ARRAY);
this.sn.getVersionedBytes());
String msg;
byte[] bytes =

View File

@ -26,6 +26,8 @@ import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@ -1522,8 +1524,20 @@ Server {
List<ServerName> backupMasters = new ArrayList<ServerName>(
backupMasterStrings.size());
for (String s: backupMasterStrings) {
backupMasters.add(new ServerName(s));
try {
byte[] bytes = ZKUtil.getData(this.zooKeeper, ZKUtil.joinZNode(this.zooKeeper.backupMasterAddressesZNode, s));
if (bytes != null) {
backupMasters.add(ServerName.parseVersionedServerName(bytes));
}
} catch (KeeperException e) {
LOG.warn(this.zooKeeper.prefix("Unable to get information about " +
"backup servers"), e);
}
}
Collections.sort(backupMasters, new Comparator<ServerName>() {
public int compare(ServerName s1, ServerName s2) {
return s1.getServerName().compareTo(s2.getServerName());
}});
return new ClusterStatus(VersionInfo.getVersion(),
this.fileSystemManager.getClusterId(),