001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018 package org.apache.hadoop.hdfs.server.namenode;
019
020 import java.util.Map;
021
022 import org.apache.hadoop.classification.InterfaceAudience;
023 import org.apache.hadoop.classification.InterfaceStability;
024
025 /**
026 * This is the JMX management interface for namenode information
027 */
028 @InterfaceAudience.Public
029 @InterfaceStability.Stable
030 public interface NameNodeMXBean {
031
032 /**
033 * Gets the version of Hadoop.
034 *
035 * @return the version
036 */
037 public String getVersion();
038
039 /**
040 * Get the version of software running on the Namenode
041 * @return a string representing the version
042 */
043 public String getSoftwareVersion();
044
045 /**
046 * Gets the used space by data nodes.
047 *
048 * @return the used space by data nodes
049 */
050 public long getUsed();
051
052 /**
053 * Gets total non-used raw bytes.
054 *
055 * @return total non-used raw bytes
056 */
057 public long getFree();
058
059 /**
060 * Gets total raw bytes including non-dfs used space.
061 *
062 * @return the total raw bytes including non-dfs used space
063 */
064 public long getTotal();
065
066
067 /**
068 * Gets the safemode status
069 *
070 * @return the safemode status
071 *
072 */
073 public String getSafemode();
074
075 /**
076 * Checks if upgrade is finalized.
077 *
078 * @return true, if upgrade is finalized
079 */
080 public boolean isUpgradeFinalized();
081
082 /**
083 * Gets total used space by data nodes for non DFS purposes such as storing
084 * temporary files on the local file system
085 *
086 * @return the non dfs space of the cluster
087 */
088 public long getNonDfsUsedSpace();
089
090 /**
091 * Gets the total used space by data nodes as percentage of total capacity
092 *
093 * @return the percentage of used space on the cluster.
094 */
095 public float getPercentUsed();
096
097 /**
098 * Gets the total remaining space by data nodes as percentage of total
099 * capacity
100 *
101 * @return the percentage of the remaining space on the cluster
102 */
103 public float getPercentRemaining();
104
105 /**
106 * Get the total space used by the block pools of this namenode
107 */
108 public long getBlockPoolUsedSpace();
109
110 /**
111 * Get the total space used by the block pool as percentage of total capacity
112 */
113 public float getPercentBlockPoolUsed();
114
115 /**
116 * Gets the total numbers of blocks on the cluster.
117 *
118 * @return the total number of blocks of the cluster
119 */
120 public long getTotalBlocks();
121
122 /**
123 * Gets the total number of files on the cluster
124 *
125 * @return the total number of files on the cluster
126 */
127 public long getTotalFiles();
128
129 /**
130 * Gets the total number of missing blocks on the cluster
131 *
132 * @return the total number of files and blocks on the cluster
133 */
134 public long getNumberOfMissingBlocks();
135
136 /**
137 * Gets the number of threads.
138 *
139 * @return the number of threads
140 */
141 public int getThreads();
142
143 /**
144 * Gets the live node information of the cluster.
145 *
146 * @return the live node information
147 */
148 public String getLiveNodes();
149
150 /**
151 * Gets the dead node information of the cluster.
152 *
153 * @return the dead node information
154 */
155 public String getDeadNodes();
156
157 /**
158 * Gets the decommissioning node information of the cluster.
159 *
160 * @return the decommissioning node information
161 */
162 public String getDecomNodes();
163
164 /**
165 * Gets the cluster id.
166 *
167 * @return the cluster id
168 */
169 public String getClusterId();
170
171 /**
172 * Gets the block pool id.
173 *
174 * @return the block pool id
175 */
176 public String getBlockPoolId();
177
178 /**
179 * Get status information about the directories storing image and edits logs
180 * of the NN.
181 *
182 * @return the name dir status information, as a JSON string.
183 */
184 public String getNameDirStatuses();
185
186 /**
187 * Get information about the transaction ID, including the last applied
188 * transaction ID and the most recent checkpoint's transaction ID
189 */
190 public String getJournalTransactionInfo();
191
192 /**
193 * Get the number of distinct versions of live datanodes
194 *
195 * @return the number of distinct versions of live datanodes
196 */
197 public int getDistinctVersionCount();
198
199 /**
200 * Get the number of live datanodes for each distinct versions
201 *
202 * @return the number of live datanodes for each distinct versions
203 */
204 public Map<String, Integer> getDistinctVersions();
205
206 }