Repository: hbase
Updated Branches:
  refs/heads/branch-1 57e5b969c -> 2a02e679c


HBASE-13564 Master MBeans are not published


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/2a02e679
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/2a02e679
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/2a02e679

Branch: refs/heads/branch-1
Commit: 2a02e679ccf95b901184afc908e49b826fc9ef55
Parents: 57e5b96
Author: Ashish Singhi <[email protected]>
Authored: Sat Apr 25 16:43:27 2015 +0530
Committer: Nick Dimiduk <[email protected]>
Committed: Mon Apr 27 21:24:04 2015 -0700

----------------------------------------------------------------------
 .../java/org/apache/hadoop/hbase/JMXListener.java   | 16 ++++++++++++----
 .../org/apache/hadoop/hbase/TestJMXListener.java    |  3 +++
 2 files changed, 15 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/2a02e679/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java
index 6a115ba..6d22142 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java
@@ -51,7 +51,8 @@ public class JMXListener implements Coprocessor {
   public static final Log LOG = LogFactory.getLog(JMXListener.class);
   public static final String RMI_REGISTRY_PORT_CONF_KEY = ".rmi.registry.port";
   public static final String RMI_CONNECTOR_PORT_CONF_KEY = 
".rmi.connector.port";
-  public static final int defRMIRegistryPort = 10102;
+  public static final int defMasterRMIRegistryPort = 10101;
+  public static final int defRegionserverRMIRegistryPort = 10102;
 
   /**
    * workaround for HBASE-11146
@@ -163,11 +164,17 @@ public class JMXListener implements Coprocessor {
     Configuration conf = env.getConfiguration();
 
     if (env instanceof MasterCoprocessorEnvironment) {
-      LOG.error("JMXListener should not be loaded in Master Environment!");
+      // running on Master
+      rmiRegistryPort =
+          conf.getInt("master" + RMI_REGISTRY_PORT_CONF_KEY, 
defMasterRMIRegistryPort);
+      rmiConnectorPort = conf.getInt("master" + RMI_CONNECTOR_PORT_CONF_KEY, 
rmiRegistryPort);
+      LOG.info("Master rmiRegistryPort:" + rmiRegistryPort + ",Master 
rmiConnectorPort:"
+          + rmiConnectorPort);
     } else if (env instanceof RegionServerCoprocessorEnvironment) {
-      // running on RegionServer --since 0.99 HMaster is also a HRegionServer
+      // running on RegionServer
       rmiRegistryPort =
-        conf.getInt("regionserver" + RMI_REGISTRY_PORT_CONF_KEY, 
defRMIRegistryPort);
+        conf.getInt("regionserver" + RMI_REGISTRY_PORT_CONF_KEY,
+        defRegionserverRMIRegistryPort);
       rmiConnectorPort =
         conf.getInt("regionserver" + RMI_CONNECTOR_PORT_CONF_KEY, 
rmiRegistryPort);
       LOG.info("RegionServer rmiRegistryPort:" + rmiRegistryPort
@@ -175,6 +182,7 @@ public class JMXListener implements Coprocessor {
 
     } else if (env instanceof RegionCoprocessorEnvironment) {
       LOG.error("JMXListener should not be loaded in Region Environment!");
+      return;
     }
 
     synchronized(JMXListener.class) {

http://git-wip-us.apache.org/repos/asf/hbase/blob/2a02e679/hbase-server/src/test/java/org/apache/hadoop/hbase/TestJMXListener.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestJMXListener.java 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestJMXListener.java
index af602a5..510c954 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestJMXListener.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestJMXListener.java
@@ -52,6 +52,9 @@ public class TestJMXListener {
     conf.set(CoprocessorHost.REGIONSERVER_COPROCESSOR_CONF_KEY,
       JMXListener.class.getName());
     conf.setInt("regionserver.rmi.registry.port", connectorPort);
+    
+    conf.set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY, 
JMXListener.class.getName());
+    conf.setInt("master.rmi.registry.port", connectorPort - 1);
 
     UTIL.startMiniCluster();
   }

Reply via email to