diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSourceImpl.java index dfa7487..977cd2b 100644 --- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSourceImpl.java +++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSourceImpl.java @@ -24,6 +24,7 @@ import org.apache.hadoop.hbase.metrics.impl.HBaseMetrics2HadoopMetricsAdapter; import org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceImpl; import org.apache.hadoop.metrics2.MetricsCollector; import org.apache.hadoop.metrics2.MetricsSource; +import org.apache.hadoop.metrics2.MetricsSystem; import org.apache.hadoop.metrics2.impl.JmxCacheBuster; import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry; @@ -48,7 +49,10 @@ public class BaseSourceImpl implements BaseSource, MetricsSource { synchronized void init(String name) { if (inited) return; inited = true; - DefaultMetricsSystem.initialize(HBASE_METRICS_SYSTEM_NAME); + MetricsSystem metricsSys = DefaultMetricsSystem.instance(); + if (metricsSys == null) { + DefaultMetricsSystem.initialize(HBASE_METRICS_SYSTEM_NAME); + } JvmMetrics.initSingleton(name, ""); // initialize hbase-metrics module based metric system as well. GlobalMetricRegistriesSource // initialization depends on the metric system being already initialized, that is why we are