FSNamesystemMBean.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. /**
  20.  * 
  21.  * This Interface defines the methods to get the status of a the FSNamesystem of
  22.  * a name node.
  23.  * It is also used for publishing via JMX (hence we follow the JMX naming
  24.  * convention.)
  25.  * 
  26.  * Note we have not used the MetricsDynamicMBeanBase to implement this
  27.  * because the interface for the NameNodeStateMBean is stable and should
  28.  * be published as an interface.
  29.  * 
  30.  * <p>
  31.  * Name Node runtime activity statistic  info is report in another MBean
  32.  * @see org.apache.hadoop.hdfs.server.namenode.metrics.NameNodeActivityMBean
  33.  *
  34.  */
  35. public interface FSNamesystemMBean {
  36.   /**
  37.    * The state of the file system: Safemode or Operational
  38.    * @return the state
  39.    */
  40.   public String getFSState();
  41.   
  42.   
  43.   /**
  44.    * Number of allocated blocks in the system
  45.    * @return -  number of allocated blocks
  46.    */
  47.   public long getBlocksTotal();
  48.   /**
  49.    * Total storage capacity
  50.    * @return -  total capacity in bytes
  51.    */
  52.   public long getCapacityTotal();
  53.   /**
  54.    * Free (unused) storage capacity
  55.    * @return -  free capacity in bytes
  56.    */
  57.   public long getCapacityRemaining();
  58.  
  59.   /**
  60.    * Used storage capacity
  61.    * @return -  used capacity in bytes
  62.    */
  63.   public long getCapacityUsed();
  64.  
  65.   /**
  66.    * Total number of files and directories
  67.    * @return -  num of files and directories
  68.    */
  69.   public long getFilesTotal();
  70.  
  71.   /**
  72.    * Blocks pending to be replicated
  73.    * @return -  num of blocks to be replicated
  74.    */
  75.   public long getPendingReplicationBlocks();
  76.  
  77.   /**
  78.    * Blocks under replicated 
  79.    * @return -  num of blocks under replicated
  80.    */
  81.   public long getUnderReplicatedBlocks();
  82.  
  83.   /**
  84.    * Blocks scheduled for replication
  85.    * @return -  num of blocks scheduled for replication
  86.    */
  87.   public long getScheduledReplicationBlocks();
  88.   /**
  89.    * Total Load on the FSNamesystem
  90.    * @return -  total load of FSNamesystem
  91.    */
  92.   public int getTotalLoad();
  93.   /**
  94.    * Number of Live data nodes
  95.    * @return number of live data nodes
  96.    */
  97.   public int numLiveDataNodes();
  98.   
  99.   /**
  100.    * Number of dead data nodes
  101.    * @return number of dead data nodes
  102.    */
  103.   public int numDeadDataNodes();
  104. }