.../hbase/zookeeper/MasterAddressTracker.java | 8 +++++- .../hbase/tmpl/master/BackupMasterStatusTmpl.jamon | 31 +++++++++++++++------- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java index 311202c..08a0317 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.java @@ -83,7 +83,13 @@ public class MasterAddressTracker extends ZooKeeperNodeTracker { */ public int getMasterInfoPort() { try { - final ZooKeeperProtos.Master master = parse(this.getData(false)); + final byte[] data = this.getData(false); + if (data == null) { + LOG.warn("Can't get master address from ZooKeeper; znode data == null"); + return 0; + } + + final ZooKeeperProtos.Master master = parse(data); if (master == null) { return 0; } diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/BackupMasterStatusTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/BackupMasterStatusTmpl.jamon index 9d5c2f9..140aa42 100644 --- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/BackupMasterStatusTmpl.jamon +++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/BackupMasterStatusTmpl.jamon @@ -34,16 +34,27 @@ MasterAddressTracker masterAddressTracker = master.getMasterAddressTracker(); <%java> ServerName active_master = (masterAddressTracker == null) ? null : masterAddressTracker.getMasterAddress(); - assert active_master != null : "Failed to retrieve master's ServerName!"; - int infoPort = (masterAddressTracker == null) ? 0 : masterAddressTracker.getMasterInfoPort(); - -
- -
-

Current Active Master: <% active_master.getHostname() %>

+ if (active_master == null) { + +
+ +
+ <%java> + } else { + int infoPort = (masterAddressTracker == null) ? 0 : masterAddressTracker.getMasterInfoPort(); + +
+ +
+

Current Active Master: <% active_master.getHostname() %>

+ <%java> + } + <%else>

Backup Masters