You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by co...@apache.org on 2010/11/11 23:24:05 UTC
svn commit: r1034181 - in /hadoop/hdfs/trunk/src/test/system:
java/org/apache/hadoop/hdfs/test/system/DNClient.java
java/org/apache/hadoop/hdfs/test/system/NNClient.java
test/org/apache/hadoop/hdfs/TestHL040.java
Author: cos
Date: Thu Nov 11 22:24:05 2010
New Revision: 1034181
URL: http://svn.apache.org/viewvc?rev=1034181&view=rev
Log:
HDFS-1408. Herriot NN and DN clients should vend statistics. Contributed by Konstantin Boudnik.
Modified:
hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/DNClient.java
hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/NNClient.java
hadoop/hdfs/trunk/src/test/system/test/org/apache/hadoop/hdfs/TestHL040.java
Modified: hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/DNClient.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/DNClient.java?rev=1034181&r1=1034180&r2=1034181&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/DNClient.java (original)
+++ hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/DNClient.java Thu Nov 11 22:24:05 2010
@@ -36,6 +36,7 @@ import org.apache.hadoop.test.system.pro
public class DNClient extends HDFSDaemonClient<DNProtocol> {
DNProtocol proxy;
+ private static final String HADOOP_DATANODE_OPTS_ENV = "HADOOP_DATANODE_OPTS";
public DNClient(Configuration conf, RemoteProcess process) throws IOException {
super(conf, process);
@@ -79,4 +80,20 @@ public class DNClient extends HDFSDaemon
public Configuration getDatanodeConfig() throws IOException {
return getProxy().getDaemonConf();
}
+
+ @Override
+ public String getHadoopOptsEnvName() {
+ return HADOOP_DATANODE_OPTS_ENV;
+ }
+
+ /**
+ * Concrete implementation of abstract super class method
+ * @param attributeName name of the attribute to be retrieved
+ * @return Object value of the given attribute
+ * @throws IOException is thrown in case of communication errors
+ */
+ @Override
+ public Object getDaemonAttribute (String attributeName) throws IOException {
+ return getJmxAttribute("DataNode", "DataNodeInfo", attributeName);
+ }
}
Modified: hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/NNClient.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/NNClient.java?rev=1034181&r1=1034180&r2=1034181&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/NNClient.java (original)
+++ hadoop/hdfs/trunk/src/test/system/java/org/apache/hadoop/hdfs/test/system/NNClient.java Thu Nov 11 22:24:05 2010
@@ -31,6 +31,7 @@ import org.apache.hadoop.test.system.pro
public class NNClient extends HDFSDaemonClient<NNProtocol> {
NNProtocol proxy;
+ private static final String HADOOP_NAMENODE_OPTS_ENV = "HADOOP_NAMENODE_OPTS";
public NNClient(Configuration conf, RemoteProcess process) throws IOException {
super(conf, process);
@@ -68,4 +69,20 @@ public class NNClient extends HDFSDaemon
protected NNProtocol getProxy() {
return proxy;
}
+
+ @Override
+ public String getHadoopOptsEnvName() {
+ return HADOOP_NAMENODE_OPTS_ENV;
+ }
+
+ /**
+ * Concrete implementation of abstract super class method
+ * @param attributeName name of the attribute to be retrieved
+ * @return Object value of the given attribute
+ * @throws IOException is thrown in case of communication errors
+ */
+ @Override
+ public Object getDaemonAttribute (String attributeName) throws IOException {
+ return getJmxAttribute("NameNode", "NameNodeInfo", attributeName);
+ }
}
Modified: hadoop/hdfs/trunk/src/test/system/test/org/apache/hadoop/hdfs/TestHL040.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/test/system/test/org/apache/hadoop/hdfs/TestHL040.java?rev=1034181&r1=1034180&r2=1034181&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/test/system/test/org/apache/hadoop/hdfs/TestHL040.java (original)
+++ hadoop/hdfs/trunk/src/test/system/test/org/apache/hadoop/hdfs/TestHL040.java Thu Nov 11 22:24:05 2010
@@ -20,6 +20,7 @@ package org.apache.hadoop.hdfs;
import java.io.IOException;
import java.util.Collection;
+import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -31,6 +32,7 @@ import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.mortbay.util.ajax.JSON;
public class TestHL040 {
private HDFSCluster cluster = null;
@@ -64,6 +66,21 @@ public class TestHL040 {
dnC.getProcessInfo());
Assert.assertNotNull("Datanode process info isn't suppose to be null",
dnC.getProcessInfo());
+ LOG.info("Free space " + getFreeSpace(dnC));
}
}
+
+ private long getFreeSpace(DNClient dnC) throws IOException {
+ Object volObj = dnC.getDaemonAttribute("VolumeInfo");
+ Assert.assertNotNull("Attribute value is expected to be not null", volObj);
+ LOG.debug("Got object: " + volObj);
+ Map volInfoMap = (Map) JSON.parse(volObj.toString());
+ long totalFreeSpace = 0L;
+ for (Object key : volInfoMap.keySet()) {
+ Map attrMap = (Map) volInfoMap.get(key);
+ long freeSpace = (Long) attrMap.get("freeSpace");
+ totalFreeSpace += freeSpace;
+ }
+ return totalFreeSpace;
+ }
}