blob: b54ffd5547035b0e68a4b7e7dffd019c8ebc95c4 [file] [log] [blame]
/**
* 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.hdfs.server.namenode;
import java.util.Map;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.hdfs.protocol.RollingUpgradeInfo;
/**
* This is the JMX management interface for namenode information.
* End users shouldn't be implementing these interfaces, and instead
* access this information through the JMX APIs.
*/
@InterfaceAudience.Private
@InterfaceStability.Stable
public interface NameNodeMXBean {
/**
* Gets the version of Hadoop.
*
* @return the version
*/
public String getVersion();
/**
* Get the version of software running on the Namenode
* @return a string representing the version
*/
public String getSoftwareVersion();
/**
* Gets the used space by data nodes.
*
* @return the used space by data nodes
*/
public long getUsed();
/**
* Gets total non-used raw bytes.
*
* @return total non-used raw bytes
*/
public long getFree();
/**
* Gets total raw bytes including non-dfs used space.
*
* @return the total raw bytes including non-dfs used space
*/
public long getTotal();
/**
* Gets the safemode status
*
* @return the safemode status
*
*/
public String getSafemode();
/**
* Checks if upgrade is finalized.
*
* @return true, if upgrade is finalized
*/
public boolean isUpgradeFinalized();
/**
* Gets the RollingUpgrade information.
*
* @return Rolling upgrade information if an upgrade is in progress. Else
* (e.g. if there is no upgrade or the upgrade is finalized), returns null.
*/
public RollingUpgradeInfo.Bean getRollingUpgradeStatus();
/**
* Gets total used space by data nodes for non DFS purposes such as storing
* temporary files on the local file system
*
* @return the non dfs space of the cluster
*/
public long getNonDfsUsedSpace();
/**
* Gets the total used space by data nodes as percentage of total capacity
*
* @return the percentage of used space on the cluster.
*/
public float getPercentUsed();
/**
* Gets the total remaining space by data nodes as percentage of total
* capacity
*
* @return the percentage of the remaining space on the cluster
*/
public float getPercentRemaining();
/**
* Returns the amount of cache used by the datanode (in bytes).
*/
public long getCacheUsed();
/**
* Returns the total cache capacity of the datanode (in bytes).
*/
public long getCacheCapacity();
/**
* Get the total space used by the block pools of this namenode
*/
public long getBlockPoolUsedSpace();
/**
* Get the total space used by the block pool as percentage of total capacity
*/
public float getPercentBlockPoolUsed();
/**
* Gets the total numbers of blocks on the cluster.
*
* @return the total number of blocks of the cluster
*/
public long getTotalBlocks();
/**
* Gets the total number of files on the cluster
*
* @return the total number of files on the cluster
* @deprecated Use
* {@link org.apache.hadoop.hdfs.server.namenode.metrics.FSNamesystemMBean#getFilesTotal()} instead.
*/
@Deprecated
public long getTotalFiles();
/**
* Gets the total number of missing blocks on the cluster
*
* @return the total number of missing blocks on the cluster
*/
public long getNumberOfMissingBlocks();
/**
* Gets the total number of missing blocks on the cluster with
* replication factor 1
*
* @return the total number of missing blocks on the cluster with
* replication factor 1
*/
public long getNumberOfMissingBlocksWithReplicationFactorOne();
/**
* Gets the total number of snapshottable dirs in the system.
*
* @return the total number of snapshottable dirs in the system
*/
public long getNumberOfSnapshottableDirs();
/**
* Gets the number of threads.
*
* @return the number of threads
*/
public int getThreads();
/**
* Gets the live node information of the cluster.
*
* @return the live node information
*/
public String getLiveNodes();
/**
* Gets the dead node information of the cluster.
*
* @return the dead node information
*/
public String getDeadNodes();
/**
* Gets the decommissioning node information of the cluster.
*
* @return the decommissioning node information
*/
public String getDecomNodes();
/**
* Gets the information on nodes entering maintenance.
*
* @return the information on nodes entering maintenance
*/
String getEnteringMaintenanceNodes();
/**
* Gets the cluster id.
*
* @return the cluster id
*/
public String getClusterId();
/**
* Gets the block pool id.
*
* @return the block pool id
*/
public String getBlockPoolId();
/**
* Get status information about the directories storing image and edits logs
* of the NN.
*
* @return the name dir status information, as a JSON string.
*/
public String getNameDirStatuses();
/**
* Get Max, Median, Min and Standard Deviation of DataNodes usage.
*
* @return the DataNode usage information, as a JSON string.
*/
public String getNodeUsage();
/**
* Get status information about the journals of the NN.
*
* @return the name journal status information, as a JSON string.
*/
public String getNameJournalStatus();
/**
* Get information about the transaction ID, including the last applied
* transaction ID and the most recent checkpoint's transaction ID
*/
public String getJournalTransactionInfo();
/**
* Gets the NN start time
* @deprecated Use
* {@link #getNNStartedTimeInMillis()} instead.
* @return the NN start time
*/
@Deprecated
public String getNNStarted();
/**
* Gets the NN start time in milliseconds.
* @return the NN start time in msec
*/
long getNNStartedTimeInMillis();
/**
* Get the compilation information which contains date, user and branch
*
* @return the compilation information, as a JSON string.
*/
public String getCompileInfo();
/**
* Get the list of corrupt files
*
* @return the list of corrupt files, as a JSON string.
*/
public String getCorruptFiles();
/**
* Get the number of distinct versions of live datanodes
*
* @return the number of distinct versions of live datanodes
*/
public int getDistinctVersionCount();
/**
* Get the number of live datanodes for each distinct versions
*
* @return the number of live datanodes for each distinct versions
*/
public Map<String, Integer> getDistinctVersions();
/**
* Get namenode directory size.
*/
String getNameDirSize();
}