You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2012/08/02 18:58:37 UTC
svn commit: r1368598 [2/2] - in /hbase/trunk: conf/ hbase-hadoop-compat/
hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/
hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/
hbase-hadoop-compat/src/main/java/org/apache/hadoop/hb...
Modified: hbase/trunk/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/metrics/BaseMetricsSourceImplTest.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/metrics/BaseMetricsSourceImplTest.java?rev=1368598&r1=1368597&r2=1368598&view=diff
==============================================================================
--- hbase/trunk/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/metrics/BaseMetricsSourceImplTest.java (original)
+++ hbase/trunk/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/metrics/BaseMetricsSourceImplTest.java Thu Aug 2 16:58:35 2012
@@ -18,6 +18,8 @@
package org.apache.hadoop.hbase.metrics;
+import org.apache.hadoop.metrics2.lib.MutableCounterLong;
+import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -39,36 +41,36 @@ public class BaseMetricsSourceImplTest {
@Test
public void testSetGauge() throws Exception {
bmsi.setGauge("testset", 100);
- assertEquals(100, bmsi.gauges.get("testset").value());
+ assertEquals(100, ((MutableGaugeLong) bmsi.metricsRegistry.get("testset")).value());
bmsi.setGauge("testset", 300);
- assertEquals(300, bmsi.gauges.get("testset").value());
+ assertEquals(300, ((MutableGaugeLong) bmsi.metricsRegistry.get("testset")).value());
}
@Test
public void testIncGauge() throws Exception {
bmsi.incGauge("testincgauge", 100);
- assertEquals(100, bmsi.gauges.get("testincgauge").value());
+ assertEquals(100, ((MutableGaugeLong) bmsi.metricsRegistry.get("testincgauge")).value());
bmsi.incGauge("testincgauge", 100);
- assertEquals(200, bmsi.gauges.get("testincgauge").value());
+ assertEquals(200, ((MutableGaugeLong) bmsi.metricsRegistry.get("testincgauge")).value());
}
@Test
public void testDecGauge() throws Exception {
bmsi.decGauge("testdec", 100);
- assertEquals(-100, bmsi.gauges.get("testdec").value());
+ assertEquals(-100, ((MutableGaugeLong) bmsi.metricsRegistry.get("testdec")).value());
bmsi.decGauge("testdec", 100);
- assertEquals(-200, bmsi.gauges.get("testdec").value());
+ assertEquals(-200, ((MutableGaugeLong) bmsi.metricsRegistry.get("testdec")).value());
}
@Test
public void testIncCounters() throws Exception {
bmsi.incCounters("testinccounter", 100);
- assertEquals(100, bmsi.counters.get("testinccounter").value());
+ assertEquals(100, ((MutableCounterLong) bmsi.metricsRegistry.get("testinccounter")).value());
bmsi.incCounters("testinccounter", 100);
- assertEquals(200, bmsi.counters.get("testinccounter").value());
+ assertEquals(200, ((MutableCounterLong) bmsi.metricsRegistry.get("testinccounter")).value());
}
@@ -76,13 +78,13 @@ public class BaseMetricsSourceImplTest {
public void testRemoveGauge() throws Exception {
bmsi.setGauge("testrmgauge", 100);
bmsi.removeGauge("testrmgauge");
- assertNull(bmsi.gauges.get("testrmgauge"));
+ assertNull(bmsi.metricsRegistry.get("testrmgauge"));
}
@Test
public void testRemoveCounter() throws Exception {
bmsi.incCounters("testrmcounter", 100);
bmsi.removeCounter("testrmcounter");
- assertNull(bmsi.counters.get("testrmcounter"));
+ assertNull(bmsi.metricsRegistry.get("testrmcounter"));
}
}
Modified: hbase/trunk/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/replication/regionserver/metrics/ReplicationMetricsSourceImplTest.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/replication/regionserver/metrics/ReplicationMetricsSourceImplTest.java?rev=1368598&r1=1368597&r2=1368598&view=diff
==============================================================================
--- hbase/trunk/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/replication/regionserver/metrics/ReplicationMetricsSourceImplTest.java (original)
+++ hbase/trunk/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/replication/regionserver/metrics/ReplicationMetricsSourceImplTest.java Thu Aug 2 16:58:35 2012
@@ -18,6 +18,7 @@
package org.apache.hadoop.hbase.replication.regionserver.metrics;
+import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
import org.junit.Test;
import static org.junit.Assert.assertTrue;
@@ -27,7 +28,8 @@ public class ReplicationMetricsSourceImp
@Test
public void testGetInstance() throws Exception {
- ReplicationMetricsSource rms = ReplicationMetricsSourceFactory.getInstance();
+ ReplicationMetricsSource rms = CompatibilitySingletonFactory
+ .getInstance(ReplicationMetricsSource.class);
assertTrue(rms instanceof ReplicationMetricsSourceImpl);
}
}
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1368598&r1=1368597&r2=1368598&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Thu Aug 2 16:58:35 2012
@@ -49,6 +49,7 @@ import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.Abortable;
import org.apache.hadoop.hbase.Chore;
import org.apache.hadoop.hbase.ClusterStatus;
+import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
import org.apache.hadoop.hbase.DeserializationException;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HConstants;
@@ -80,6 +81,8 @@ import org.apache.hadoop.hbase.executor.
import org.apache.hadoop.hbase.executor.ExecutorService.ExecutorType;
import org.apache.hadoop.hbase.ipc.HBaseRPC;
import org.apache.hadoop.hbase.ipc.HBaseServer;
+import org.apache.hadoop.hbase.master.metrics.MXBeanImpl;
+import org.apache.hadoop.hbase.metrics.MBeanSource;
import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
import org.apache.hadoop.hbase.protobuf.ResponseConverter;
import org.apache.hadoop.hbase.ipc.ProtocolSignature;
@@ -399,6 +402,10 @@ Server {
}
+ MasterMetrics getMetrics() {
+ return metrics;
+ }
+
/**
* Main processing loop for the HMaster.
* <ol>
@@ -2252,7 +2259,8 @@ Server {
*/
void registerMBean() {
MXBeanImpl mxBeanInfo = MXBeanImpl.init(this);
- MBeanUtil.registerMBean("Master", "Master", mxBeanInfo);
+ mxBean = CompatibilitySingletonFactory.getInstance(
+ MBeanSource.class).register("hbase", "HMaster,sub=MXBean", mxBeanInfo);
LOG.info("Registered HMaster MXBean");
}
Added: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/metrics/MXBean.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/metrics/MXBean.java?rev=1368598&view=auto
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/metrics/MXBean.java (added)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/metrics/MXBean.java Thu Aug 2 16:58:35 2012
@@ -0,0 +1,110 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.master.metrics;
+
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.classification.InterfaceStability;
+
+/**
+ * This is the JMX management interface for Hbase master information
+ */
+@InterfaceStability.Evolving
+@InterfaceAudience.Private
+public interface MXBean {
+
+ /**
+ * Required for MXBean implementation
+ */
+ public static interface RegionsInTransitionInfo {
+ /**
+ * Name of region in transition
+ */
+ public String getRegionName();
+ /**
+ * Current transition state
+ */
+ public String getRegionState();
+ /**
+ * Get Region Server name
+ */
+ public String getRegionServerName();
+ /**
+ * Get last update time
+ */
+ public long getLastUpdateTime();
+ }
+
+ /**
+ * Get ServerName
+ */
+ public String getServerName();
+
+ /**
+ * Get Average Load
+ * @return Average Load
+ */
+ public double getAverageLoad();
+
+ /**
+ * Get the Cluster ID
+ * @return Cluster ID
+ */
+ public String getClusterId();
+
+ /**
+ * Get the Zookeeper Quorum Info
+ * @return Zookeeper Quorum Info
+ */
+ public String getZookeeperQuorum();
+
+ /**
+ * Get the co-processors
+ * @return Co-processors
+ */
+ public String[] getCoprocessors();
+
+ /**
+ * Get hbase master start time
+ * @return Start time of master in milliseconds
+ */
+ public long getMasterStartTime();
+
+ /**
+ * Get the hbase master active time
+ * @return Time in milliseconds when master became active
+ */
+ public long getMasterActiveTime();
+
+ /**
+ * Whether this master is the active master
+ * @return True if this is the active master
+ */
+ public boolean getIsActiveMaster();
+
+ /**
+ * Get the live region servers
+ * @return Live region servers
+ */
+ public int getRegionServers();
+
+ /**
+ * Get the dead region servers
+ * @return Dead region Servers
+ */
+ public String[] getDeadRegionServers();
+}
Added: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/metrics/MXBeanImpl.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/metrics/MXBeanImpl.java?rev=1368598&view=auto
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/metrics/MXBeanImpl.java (added)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/metrics/MXBeanImpl.java Thu Aug 2 16:58:35 2012
@@ -0,0 +1,103 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.master.metrics;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.hadoop.hbase.ServerLoad;
+import org.apache.hadoop.hbase.ServerName;
+import org.apache.hadoop.hbase.master.RegionState;
+import org.apache.hadoop.hbase.master.HMaster;
+
+/**
+ * Impl for exposing HMaster Information through JMX
+ */
+public class MXBeanImpl implements MXBean {
+
+ private final HMaster master;
+
+ private static MXBeanImpl instance = null;
+ public synchronized static MXBeanImpl init(final HMaster master) {
+ if (instance == null) {
+ instance = new MXBeanImpl(master);
+ }
+ return instance;
+ }
+
+ protected MXBeanImpl(final HMaster master) {
+ this.master = master;
+ }
+
+ @Override
+ public double getAverageLoad() {
+ return master.getAverageLoad();
+ }
+
+ @Override
+ public String getClusterId() {
+ return master.getClusterId();
+ }
+
+ @Override
+ public String getZookeeperQuorum() {
+ return master.getZooKeeperWatcher().getQuorum();
+ }
+
+ @Override
+ public String[] getCoprocessors() {
+ return master.getCoprocessors();
+ }
+
+ @Override
+ public long getMasterStartTime() {
+ return master.getMasterStartTime();
+ }
+
+ @Override
+ public long getMasterActiveTime() {
+ return master.getMasterActiveTime();
+ }
+
+ @Override
+ public int getRegionServers() {
+ return this.master.getServerManager().getOnlineServers().size();
+ }
+
+ @Override
+ public String[] getDeadRegionServers() {
+ List<String> deadServers = new ArrayList<String>();
+ for (ServerName name : master.getServerManager().getDeadServers()) {
+ deadServers.add(name.getHostAndPort());
+ }
+ return deadServers.toArray(new String[0]);
+ }
+
+ @Override
+ public String getServerName() {
+ return master.getServerName().getServerName();
+ }
+
+ @Override
+ public boolean getIsActiveMaster() {
+ return master.isActiveMaster();
+ }
+}
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/metrics/MasterMetrics.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/metrics/MasterMetrics.java?rev=1368598&r1=1368597&r2=1368598&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/metrics/MasterMetrics.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/metrics/MasterMetrics.java Thu Aug 2 16:58:35 2012
@@ -17,24 +17,11 @@
*/
package org.apache.hadoop.hbase.master.metrics;
-import java.io.IOException;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.classification.InterfaceAudience;
-import org.apache.hadoop.hbase.metrics.HBaseInfo;
-import org.apache.hadoop.hbase.metrics.MetricsRate;
-import org.apache.hadoop.hbase.metrics.histogram.MetricsHistogram;
-import org.apache.hadoop.metrics.ContextFactory;
-import org.apache.hadoop.metrics.MetricsContext;
-import org.apache.hadoop.metrics.MetricsRecord;
-import org.apache.hadoop.metrics.MetricsUtil;
-import org.apache.hadoop.metrics.Updater;
-import org.apache.hadoop.metrics.jvm.JvmMetrics;
-import org.apache.hadoop.metrics.util.MetricsIntValue;
-import org.apache.hadoop.metrics.util.MetricsLongValue;
-import org.apache.hadoop.metrics.util.MetricsRegistry;
-
+import org.apache.hadoop.classification.InterfaceStability;
+import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
/**
* This class is for maintaining the various master statistics
@@ -43,124 +30,38 @@ import org.apache.hadoop.metrics.util.Me
* This class has a number of metrics variables that are publicly accessible;
* these variables (objects) have methods to update their values.
*/
+@InterfaceStability.Evolving
@InterfaceAudience.Private
-public class MasterMetrics implements Updater {
+public class MasterMetrics {
private final Log LOG = LogFactory.getLog(this.getClass());
- private final MetricsRecord metricsRecord;
- private final MetricsRegistry registry = new MetricsRegistry();
- private final MasterStatistics masterStatistics;
-
- private long lastUpdate = System.currentTimeMillis();
- private long lastExtUpdate = System.currentTimeMillis();
- private long extendedPeriod = 0;
-/*
- * Count of requests to the cluster since last call to metrics update
- */
- private final MetricsRate cluster_requests =
- new MetricsRate("cluster_requests", registry);
-
- /** Time it takes to finish HLog.splitLog() */
- final MetricsHistogram splitTime = new MetricsHistogram("splitTime", registry);
-
- /** Size of HLog files being split */
- final MetricsHistogram splitSize = new MetricsHistogram("splitSize", registry);
-
- /**
- * Regions in Transition metrics such as number of RIT regions, oldest
- * RIT time and number of such regions that are in transition
- * for more than a specified threshold.
- */
- public final MetricsIntValue ritCount =
- new MetricsIntValue("ritCount", registry);
- public final MetricsIntValue ritCountOverThreshold =
- new MetricsIntValue("ritCountOverThreshold", registry);
- public final MetricsLongValue ritOldestAge =
- new MetricsLongValue("ritOldestAge", registry);
+ private MasterMetricsSource masterMetricsSource;
public MasterMetrics(final String name) {
- MetricsContext context = MetricsUtil.getContext("hbase");
- metricsRecord = MetricsUtil.createRecord(context, "master");
- metricsRecord.setTag("Master", name);
- context.registerUpdater(this);
- JvmMetrics.init("Master", name);
- HBaseInfo.init();
-
- // expose the MBean for metrics
- masterStatistics = new MasterStatistics(this.registry);
-
- // get custom attributes
- try {
- Object m =
- ContextFactory.getFactory().getAttribute("hbase.extendedperiod");
- if (m instanceof String) {
- this.extendedPeriod = Long.parseLong((String) m)*1000;
- }
- } catch (IOException ioe) {
- LOG.info("Couldn't load ContextFactory for Metrics config info");
- }
-
- LOG.info("Initialized");
- }
-
- public void shutdown() {
- if (masterStatistics != null)
- masterStatistics.shutdown();
+ masterMetricsSource = CompatibilitySingletonFactory.getInstance(MasterMetricsSource.class);
}
- /**
- * Since this object is a registered updater, this method will be called
- * periodically, e.g. every 5 seconds.
- * @param unused
- */
- public void doUpdates(MetricsContext unused) {
- synchronized (this) {
- this.lastUpdate = System.currentTimeMillis();
-
- // has the extended period for long-living stats elapsed?
- if (this.extendedPeriod > 0 &&
- this.lastUpdate - this.lastExtUpdate >= this.extendedPeriod) {
- this.lastExtUpdate = this.lastUpdate;
- this.splitTime.clear();
- this.splitSize.clear();
- this.resetAllMinMax();
- }
-
- this.cluster_requests.pushMetric(metricsRecord);
- this.splitTime.pushMetric(metricsRecord);
- this.splitSize.pushMetric(metricsRecord);
- this.ritCount.pushMetric(metricsRecord);
- this.ritCountOverThreshold.pushMetric(metricsRecord);
- this.ritOldestAge.pushMetric(metricsRecord);
- }
- this.metricsRecord.update();
+ // for unit-test usage
+ public MasterMetricsSource getMetricsSource() {
+ return masterMetricsSource;
}
- public void resetAllMinMax() {
- // Nothing to do
- }
-
/**
* Record a single instance of a split
* @param time time that the split took
* @param size length of original HLogs that were split
*/
public synchronized void addSplit(long time, long size) {
- splitTime.update(time);
- splitSize.update(size);
- }
- /**
- * @return Count of requests.
- */
- public float getRequests() {
- return this.cluster_requests.getPreviousIntervalValue();
+ //TODO use new metrics histogram
+
}
/**
* @param inc How much to add to requests.
*/
public void incrementRequests(final int inc) {
- this.cluster_requests.inc(inc);
+ masterMetricsSource.incRequests(inc);
+
}
/**
@@ -168,7 +69,7 @@ public class MasterMetrics implements Up
* @param ritCount
*/
public void updateRITCount(int ritCount) {
- this.ritCount.set(ritCount);
+ masterMetricsSource.setRIT(ritCount);
}
/**
@@ -177,13 +78,13 @@ public class MasterMetrics implements Up
* @param ritCountOverThreshold
*/
public void updateRITCountOverThreshold(int ritCountOverThreshold) {
- this.ritCountOverThreshold.set(ritCountOverThreshold);
+ masterMetricsSource.setRITCountOverThreshold(ritCountOverThreshold);
}
/**
* update the timestamp for oldest region in transition metrics.
* @param timestamp
*/
public void updateRITOldestAge(long timestamp) {
- this.ritOldestAge.set(timestamp);
+ masterMetricsSource.setRITOldestAge(timestamp);
}
}
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/metrics/ReplicationSinkMetrics.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/metrics/ReplicationSinkMetrics.java?rev=1368598&r1=1368597&r2=1368598&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/metrics/ReplicationSinkMetrics.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/metrics/ReplicationSinkMetrics.java Thu Aug 2 16:58:35 2012
@@ -19,8 +19,7 @@
package org.apache.hadoop.hbase.replication.regionserver.metrics;
import org.apache.hadoop.classification.InterfaceAudience;
-import org.apache.hadoop.hbase.replication.regionserver.metrics.ReplicationMetricsSource;
-import org.apache.hadoop.hbase.replication.regionserver.metrics.ReplicationMetricsSourceFactory;
+import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
/**
* This class is for maintaining the various replication statistics for a sink and publishing them
@@ -36,7 +35,7 @@ public class ReplicationSinkMetrics {
private ReplicationMetricsSource rms;
public ReplicationSinkMetrics() {
- rms = ReplicationMetricsSourceFactory.getInstance();
+ rms = CompatibilitySingletonFactory.getInstance(ReplicationMetricsSource.class);
}
/**
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/metrics/ReplicationSourceMetrics.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/metrics/ReplicationSourceMetrics.java?rev=1368598&r1=1368597&r2=1368598&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/metrics/ReplicationSourceMetrics.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/metrics/ReplicationSourceMetrics.java Thu Aug 2 16:58:35 2012
@@ -21,6 +21,7 @@ package org.apache.hadoop.hbase.replicat
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
/**
* This class is for maintaining the various replication statistics for a source and publishing them
@@ -65,7 +66,7 @@ public class ReplicationSourceMetrics {
logEditsFilteredKey = "source." + id + ".logEditsFiltered";
shippedBatchesKey = "source." + this.id + ".shippedBatches";
shippedOpsKey = "source." + this.id + ".shippedOps";
- rms = ReplicationMetricsSourceFactory.getInstance();
+ rms = CompatibilitySingletonFactory.getInstance(ReplicationMetricsSource.class);
}
/**
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMXBean.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMXBean.java?rev=1368598&r1=1368597&r2=1368598&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMXBean.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMXBean.java Thu Aug 2 16:58:35 2012
@@ -25,6 +25,7 @@ import junit.framework.Assert;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.ServerLoad;
+import org.apache.hadoop.hbase.master.metrics.MXBeanImpl;
import org.apache.hadoop.hbase.regionserver.HRegionServer;
import org.apache.hadoop.hbase.MediumTests;
import org.junit.AfterClass;
@@ -48,22 +49,6 @@ public class TestMXBean {
TEST_UTIL.shutdownMiniCluster();
}
- private void verifyRegionServers(Map<String, ServerLoad> regions) {
- Set<String> expected = new HashSet<String>();
- for (int i = 0; i < 4; ++i) {
- HRegionServer rs = TEST_UTIL.getMiniHBaseCluster().getRegionServer(i);
- expected.add(rs.getServerName().getServerName());
- }
-
- int found = 0;
- for (java.util.Map.Entry<String, ServerLoad> entry : regions.entrySet()) {
- if (expected.contains(entry.getKey())) {
- ++found;
- }
- }
- Assert.assertEquals(4, found);
- }
-
@Test
public void testInfo() {
HMaster master = TEST_UTIL.getHBaseCluster().getMaster();
@@ -77,20 +62,16 @@ public class TestMXBean {
Assert.assertEquals(master.getCoprocessors().length,
info.getCoprocessors().length);
Assert.assertEquals(master.getServerManager().getOnlineServersList().size(),
- info.getRegionServers().size());
- Assert.assertEquals(master.getAssignmentManager().getRegionStates().isRegionsInTransition(),
- info.getRegionsInTransition().length > 0);
- Assert.assertTrue(info.getRegionServers().size() == 4);
+ info.getRegionServers());
+ Assert.assertTrue(info.getRegionServers() == 4);
String zkServers = info.getZookeeperQuorum();
Assert.assertEquals(zkServers.split(",").length,
TEST_UTIL.getZkCluster().getZooKeeperServerNum());
- verifyRegionServers(info.getRegionServers());
-
TEST_UTIL.getMiniHBaseCluster().stopRegionServer(3, false);
TEST_UTIL.getMiniHBaseCluster().waitOnRegionServer(3);
- Assert.assertTrue(info.getRegionServers().size() == 3);
+ Assert.assertTrue(info.getRegionServers() == 3);
Assert.assertTrue(info.getDeadRegionServers().length == 1);
}