NameNodeActivtyMBean.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:3k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.hdfs.server.namenode.metrics;
  19. import javax.management.ObjectName;
  20. import org.apache.hadoop.metrics.util.MBeanUtil;
  21. import org.apache.hadoop.metrics.util.MetricsDynamicMBeanBase;
  22. import org.apache.hadoop.metrics.util.MetricsRegistry;
  23. /**
  24.  * 
  25.  * This is the JMX MBean for reporting the NameNode Activity.
  26.  * The MBean is register using the name
  27.  *        "hadoop:service=NameNode,name=NameNodeActivity"
  28.  * 
  29.  * Many of the activity metrics are sampled and averaged on an interval 
  30.  * which can be specified in the metrics config file.
  31.  * <p>
  32.  * For the metrics that are sampled and averaged, one must specify 
  33.  * a metrics context that does periodic update calls. Most metrics contexts do.
  34.  * The default Null metrics context however does NOT. So if you aren't
  35.  * using any other metrics context then you can turn on the viewing and averaging
  36.  * of sampled metrics by  specifying the following two lines
  37.  *  in the hadoop-meterics.properties file:
  38. *  <pre>
  39.  *        dfs.class=org.apache.hadoop.metrics.spi.NullContextWithUpdateThread
  40.  *        dfs.period=10
  41.  *  </pre>
  42.  *<p>
  43.  * Note that the metrics are collected regardless of the context used.
  44.  * The context with the update thread is used to average the data periodically
  45.  *
  46.  *
  47.  *
  48.  * Impl details: We use a dynamic mbean that gets the list of the metrics
  49.  * from the metrics registry passed as an argument to the constructor
  50.  */
  51. public class NameNodeActivtyMBean extends MetricsDynamicMBeanBase {
  52.   final private ObjectName mbeanName;
  53.   protected NameNodeActivtyMBean(final MetricsRegistry mr) {
  54.     super(mr, "Activity statistics at the NameNode");
  55.     mbeanName = MBeanUtil.registerMBean("NameNode", "NameNodeActivity", this);
  56.   }
  57.   public void shutdown() {
  58.     if (mbeanName != null)
  59.       MBeanUtil.unregisterMBean(mbeanName);
  60.   }
  61. }