HDFS-3099. SecondaryNameNode does not properly initialize metrics system. Contributed by Aaron T. Myers.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1301230 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Aaron Myers 2012-03-15 22:02:30 +00:00
parent 0c90bd9fa3
commit 003ea1e226
3 changed files with 44 additions and 23 deletions

View File

@ -210,6 +210,9 @@ Release 0.23.3 - UNRELEASED
HDFS-3005. FSVolume.decDfsUsed(..) should be synchronized. (szetszwo) HDFS-3005. FSVolume.decDfsUsed(..) should be synchronized. (szetszwo)
HDFS-3099. SecondaryNameNode does not properly initialize metrics system.
(atm)
BREAKDOWN OF HDFS-1623 SUBTASKS BREAKDOWN OF HDFS-1623 SUBTASKS
HDFS-2179. Add fencing framework and mechanisms for NameNode HA. (todd) HDFS-2179. Add fencing framework and mechanisms for NameNode HA. (todd)

View File

@ -204,6 +204,7 @@ public class SecondaryNameNode implements Runnable {
DFS_SECONDARY_NAMENODE_USER_NAME_KEY, infoBindAddress); DFS_SECONDARY_NAMENODE_USER_NAME_KEY, infoBindAddress);
} }
// initiate Java VM metrics // initiate Java VM metrics
DefaultMetricsSystem.initialize("SecondaryNameNode");
JvmMetrics.create("SecondaryNameNode", JvmMetrics.create("SecondaryNameNode",
conf.get(DFS_METRICS_SESSION_ID_KEY), DefaultMetricsSystem.instance()); conf.get(DFS_METRICS_SESSION_ID_KEY), DefaultMetricsSystem.instance());

View File

@ -17,36 +17,39 @@
*/ */
package org.apache.hadoop.hdfs.server.namenode; package org.apache.hadoop.hdfs.server.namenode;
import static org.junit.Assert.*; import static org.junit.Assert.assertTrue;
import java.io.IOException; import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hdfs.DFSConfigKeys; import org.apache.hadoop.hdfs.DFSConfigKeys;
import org.apache.hadoop.hdfs.DFSTestUtil; import org.apache.hadoop.hdfs.DFSTestUtil;
import org.apache.hadoop.hdfs.MiniDFSCluster; import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
public class TestSecondaryWebUi { public class TestSecondaryWebUi {
@Test private static MiniDFSCluster cluster;
public void testSecondaryWebUi() throws IOException { private static SecondaryNameNode snn;
Configuration conf = new Configuration(); private static Configuration conf = new Configuration();
@BeforeClass
public static void setUpCluster() throws IOException {
conf.set(DFSConfigKeys.DFS_NAMENODE_SECONDARY_HTTP_ADDRESS_KEY, conf.set(DFSConfigKeys.DFS_NAMENODE_SECONDARY_HTTP_ADDRESS_KEY,
"0.0.0.0:0"); "0.0.0.0:0");
MiniDFSCluster cluster = null;
SecondaryNameNode snn = null;
try {
cluster = new MiniDFSCluster.Builder(conf).numDataNodes(0) cluster = new MiniDFSCluster.Builder(conf).numDataNodes(0)
.build(); .build();
cluster.waitActive(); cluster.waitActive();
snn = new SecondaryNameNode(conf); snn = new SecondaryNameNode(conf);
String pageContents = DFSTestUtil.urlGet(new URL("http://localhost:" + }
SecondaryNameNode.getHttpAddress(conf).getPort() + "/status.jsp"));
assertTrue(pageContents.contains("Last Checkpoint Time")); @AfterClass
} finally { public static void shutDownCluster() {
if (cluster != null) { if (cluster != null) {
cluster.shutdown(); cluster.shutdown();
} }
@ -54,5 +57,19 @@ public class TestSecondaryWebUi {
snn.shutdown(); snn.shutdown();
} }
} }
@Test
public void testSecondaryWebUi() throws IOException {
String pageContents = DFSTestUtil.urlGet(new URL("http://localhost:" +
SecondaryNameNode.getHttpAddress(conf).getPort() + "/status.jsp"));
assertTrue(pageContents.contains("Last Checkpoint Time"));
}
@Test
public void testSecondaryWebJmx() throws MalformedURLException, IOException {
String pageContents = DFSTestUtil.urlGet(new URL("http://localhost:" +
SecondaryNameNode.getHttpAddress(conf).getPort() + "/jmx"));
assertTrue(pageContents.contains(
"Hadoop:service=SecondaryNameNode,name=JvmMetrics"));
} }
} }