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 je...@apache.org on 2013/11/19 23:44:14 UTC
svn commit: r1543612 - in
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs: ./
src/main/java/org/apache/hadoop/hdfs/qjournal/server/
src/main/java/org/apache/hadoop/hdfs/server/datanode/
src/main/java/org/apache/hadoop/hdfs/server/namenode/ src/tes...
Author: jeagles
Date: Tue Nov 19 22:44:13 2013
New Revision: 1543612
URL: http://svn.apache.org/r1543612
Log:
HDFS-1386. TestJMXGet fails in jdk7 (jeagles)
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNode.java
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestJMXGet.java
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1543612&r1=1543611&r2=1543612&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Tue Nov 19 22:44:13 2013
@@ -506,6 +506,8 @@ Release 2.3.0 - UNRELEASED
HDFS-5073. TestListCorruptFileBlocks fails intermittently. (Arpit Agarwal)
+ HDFS-1386. TestJMXGet fails in jdk7 (jeagles)
+
OPTIMIZATIONS
HDFS-5239. Allow FSNamesystem lock fairness to be configurable (daryn)
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNode.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNode.java?rev=1543612&r1=1543611&r2=1543612&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNode.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JournalNode.java Tue Nov 19 22:44:13 2013
@@ -24,6 +24,8 @@ import java.net.InetSocketAddress;
import java.util.HashMap;
import java.util.Map;
+import javax.management.ObjectName;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.classification.InterfaceAudience;
@@ -61,6 +63,7 @@ public class JournalNode implements Tool
private JournalNodeRpcServer rpcServer;
private JournalNodeHttpServer httpServer;
private Map<String, Journal> journalsById = Maps.newHashMap();
+ private ObjectName journalNodeInfoBeanName;
private File localDir;
@@ -181,6 +184,11 @@ public class JournalNode implements Tool
for (Journal j : journalsById.values()) {
IOUtils.cleanup(LOG, j);
}
+
+ if (journalNodeInfoBeanName != null) {
+ MBeans.unregister(journalNodeInfoBeanName);
+ journalNodeInfoBeanName = null;
+ }
}
/**
@@ -256,7 +264,7 @@ public class JournalNode implements Tool
* Register JournalNodeMXBean
*/
private void registerJNMXBean() {
- MBeans.register("JournalNode", "JournalNodeInfo", this);
+ journalNodeInfoBeanName = MBeans.register("JournalNode", "JournalNodeInfo", this);
}
private class ErrorReporter implements StorageErrorReporter {
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java?rev=1543612&r1=1543611&r2=1543612&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java Tue Nov 19 22:44:13 2013
@@ -96,6 +96,8 @@ import java.security.PrivilegedException
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
+import javax.management.ObjectName;
+
import static org.apache.hadoop.hdfs.DFSConfigKeys.*;
import static org.apache.hadoop.util.ExitUtil.terminate;
@@ -210,6 +212,7 @@ public class DataNode extends Configured
private boolean connectToDnViaHostname;
ReadaheadPool readaheadPool;
private final boolean getHdfsBlockLocationsEnabled;
+ private ObjectName dataNodeInfoBeanName;
/**
* Create the DataNode given a configuration and an array of dataDirs.
@@ -879,7 +882,7 @@ public class DataNode extends Configured
}
private void registerMXBean() {
- MBeans.register("DataNode", "DataNodeInfo", this);
+ dataNodeInfoBeanName = MBeans.register("DataNode", "DataNodeInfo", this);
}
@VisibleForTesting
@@ -1236,6 +1239,10 @@ public class DataNode extends Configured
if (metrics != null) {
metrics.shutdown();
}
+ if (dataNodeInfoBeanName != null) {
+ MBeans.unregister(dataNodeInfoBeanName);
+ dataNodeInfoBeanName = null;
+ }
}
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java?rev=1543612&r1=1543611&r2=1543612&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java Tue Nov 19 22:44:13 2013
@@ -5517,6 +5517,7 @@ public class FSNamesystem implements Nam
}
private ObjectName mbeanName;
+ private ObjectName mxbeanName;
/**
* Register the FSNamesystem MBean using the name
@@ -5540,6 +5541,11 @@ public class FSNamesystem implements Nam
void shutdown() {
if (mbeanName != null) {
MBeans.unregister(mbeanName);
+ mbeanName = null;
+ }
+ if (mxbeanName != null) {
+ MBeans.unregister(mxbeanName);
+ mxbeanName = null;
}
if (dir != null) {
dir.shutdown();
@@ -6353,7 +6359,7 @@ public class FSNamesystem implements Nam
* Register NameNodeMXBean
*/
private void registerMXBean() {
- MBeans.register("NameNode", "NameNodeInfo", this);
+ mxbeanName = MBeans.register("NameNode", "NameNodeInfo", this);
}
/**
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java?rev=1543612&r1=1543611&r2=1543612&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java Tue Nov 19 22:44:13 2013
@@ -26,6 +26,9 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
+
+import javax.management.ObjectName;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.HadoopIllegalArgumentException;
@@ -261,6 +264,7 @@ public class NameNode implements NameNod
private NameNodeRpcServer rpcServer;
private JvmPauseMonitor pauseMonitor;
+ private ObjectName nameNodeStatusBeanName;
/** Format a new filesystem. Destroys any filesystem that may already
* exist at this location. **/
@@ -745,6 +749,10 @@ public class NameNode implements NameNod
if (namesystem != null) {
namesystem.shutdown();
}
+ if (nameNodeStatusBeanName != null) {
+ MBeans.unregister(nameNodeStatusBeanName);
+ nameNodeStatusBeanName = null;
+ }
}
}
@@ -1414,7 +1422,7 @@ public class NameNode implements NameNod
* Register NameNodeStatusMXBean
*/
private void registerNNSMXBean() {
- MBeans.register("NameNode", "NameNodeStatus", this);
+ nameNodeStatusBeanName = MBeans.register("NameNode", "NameNodeStatus", this);
}
@Override // NameNodeStatusMXBean
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestJMXGet.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestJMXGet.java?rev=1543612&r1=1543611&r2=1543612&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestJMXGet.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tools/TestJMXGet.java Tue Nov 19 22:44:13 2013
@@ -28,7 +28,12 @@ import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.io.PrintStream;
+import java.lang.management.ManagementFactory;
import java.util.Random;
+import java.util.Set;
+
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.CommonConfigurationKeys;
@@ -92,9 +97,8 @@ public class TestJMXGet {
fileSize, fileSize, blockSize, (short) 2, seed);
JMXGet jmx = new JMXGet();
- //jmx.setService("*"); // list all hadoop services
- //jmx.init();
- //jmx = new JMXGet();
+ String serviceName = "NameNode";
+ jmx.setService(serviceName);
jmx.init(); // default lists namenode mbeans only
assertTrue("error printAllValues", checkPrintAllValues(jmx));
@@ -107,6 +111,10 @@ public class TestJMXGet {
jmx.getValue("NumOpenConnections")));
cluster.shutdown();
+ MBeanServerConnection mbsc = ManagementFactory.getPlatformMBeanServer();
+ ObjectName query = new ObjectName("Hadoop:service=" + serviceName + ",*");
+ Set<ObjectName> names = mbsc.queryNames(query, null);
+ assertTrue("No beans should be registered for " + serviceName, names.isEmpty());
}
private static boolean checkPrintAllValues(JMXGet jmx) throws Exception {
@@ -140,13 +148,15 @@ public class TestJMXGet {
fileSize, fileSize, blockSize, (short) 2, seed);
JMXGet jmx = new JMXGet();
- //jmx.setService("*"); // list all hadoop services
- //jmx.init();
- //jmx = new JMXGet();
- jmx.setService("DataNode");
+ String serviceName = "DataNode";
+ jmx.setService(serviceName);
jmx.init();
assertEquals(fileSize, Integer.parseInt(jmx.getValue("BytesWritten")));
cluster.shutdown();
+ MBeanServerConnection mbsc = ManagementFactory.getPlatformMBeanServer();
+ ObjectName query = new ObjectName("Hadoop:service=" + serviceName + ",*");
+ Set<ObjectName> names = mbsc.queryNames(query, null);
+ assertTrue("No beans should be registered for " + serviceName, names.isEmpty());
}
}