From 47f3a16b58b59b4e7faa1cf8e8ffd9bfe8585cc6 Mon Sep 17 00:00:00 2001 From: Andrew Purtell Date: Thu, 1 Mar 2018 18:21:12 -0800 Subject: [PATCH] HBASE-20109 Add Admin#getMaster API to branch-1 --- .../main/java/org/apache/hadoop/hbase/client/Admin.java | 6 ++++++ .../java/org/apache/hadoop/hbase/client/HBaseAdmin.java | 17 ++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java index 4aadd3093d..8f5e1506f7 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java @@ -1544,6 +1544,12 @@ public interface Admin extends Abortable, Closeable { */ void updateConfiguration() throws IOException; + /** + * @return current master server name + * @throws IOException if a remote or network exception occurs + */ + ServerName getMaster() throws IOException; + /** * Get the info port of the current master if one is available. * @return master info port diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java index 507c6fbf6c..d68add64ce 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java @@ -4542,9 +4542,24 @@ public class HBaseAdmin implements Admin { } } + /** + * @return current master server name + * @throws IOException if a remote or network exception occurs + */ + @Override + public ServerName getMaster() throws IOException { + ConnectionManager.HConnectionImplementation connection = + (ConnectionManager.HConnectionImplementation)this.connection; + ZooKeeperKeepAliveConnection zkw = connection.getKeepAliveZooKeeperWatcher(); + try { + return MasterAddressTracker.getMasterAddress(zkw); + } catch (Exception e) { + throw new IOException("Failed to get master address from MasterAddressTracker", e); + } + } + @Override public int getMasterInfoPort() throws IOException { - // TODO: Fix! Reaching into internal implementation!!!! ConnectionManager.HConnectionImplementation connection = (ConnectionManager.HConnectionImplementation)this.connection; ZooKeeperKeepAliveConnection zkw = connection.getKeepAliveZooKeeperWatcher(); -- 2.15.1