HBASE-13564 Master MBeans are not published
This commit is contained in:
parent
f487dda20c
commit
a725044644
|
@ -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!");
|
||||
} else if (env instanceof RegionServerCoprocessorEnvironment) {
|
||||
// running on RegionServer --since 0.99 HMaster is also a HRegionServer
|
||||
// running on Master
|
||||
rmiRegistryPort =
|
||||
conf.getInt("regionserver" + RMI_REGISTRY_PORT_CONF_KEY, defRMIRegistryPort);
|
||||
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
|
||||
rmiRegistryPort =
|
||||
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) {
|
||||
|
|
|
@ -54,6 +54,9 @@ public class TestJMXListener {
|
|||
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();
|
||||
}
|
||||
|
||||
|
|
|
@ -994,8 +994,7 @@ To enable it in 0.99 or above, add below property in _hbase-site.xml_:
|
|||
NOTE: DO NOT set `com.sun.management.jmxremote.port` for Java VM at the same time.
|
||||
|
||||
Currently it supports Master and RegionServer Java VM.
|
||||
The reason why you only configure coprocessor for 'regionserver' is that, starting from HBase 0.99, a Master IS also a RegionServer.
|
||||
(See link:https://issues.apache.org/jira/browse/HBASE-10569[HBASE-10569] for more information.) By default, the JMX listens on TCP port 10102, you can further configure the port using below properties:
|
||||
By default, the JMX listens on TCP port 10102, you can further configure the port using below properties:
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
|
@ -1062,7 +1061,7 @@ Finally start `jconsole` on the client using the key store:
|
|||
jconsole -J-Djavax.net.ssl.trustStore=/home/tianq/jconsoleKeyStore
|
||||
----
|
||||
|
||||
NOTE: for HBase 0.98, To enable the HBase JMX implementation on Master, you also need to add below property in _hbase-site.xml_:
|
||||
NOTE: To enable the HBase JMX implementation on Master, you also need to add below property in _hbase-site.xml_:
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
|
|
Loading…
Reference in New Issue