You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by sz...@apache.org on 2009/02/09 20:06:51 UTC
svn commit: r742678 - in /hadoop/core/trunk: ./
src/hdfs/org/apache/hadoop/hdfs/server/namenode/ src/webapps/secondary/
Author: szetszwo
Date: Mon Feb 9 19:06:50 2009
New Revision: 742678
URL: http://svn.apache.org/viewvc?rev=742678&view=rev
Log:
HADOOP-3741. Add a web ui for the SecondaryNameNode. (szetszwo)
Added:
hadoop/core/trunk/src/webapps/secondary/
hadoop/core/trunk/src/webapps/secondary/index.html
hadoop/core/trunk/src/webapps/secondary/status.jsp
Modified:
hadoop/core/trunk/CHANGES.txt
hadoop/core/trunk/build.xml
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/JspHelper.java
hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java
Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=742678&r1=742677&r2=742678&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Mon Feb 9 19:06:50 2009
@@ -35,6 +35,9 @@
HADOOP-4368. Implement df in FsShell to show the status of a FileSystem.
(Craig Macdonald via szetszwo)
+ HADOOP-3741. Add a web ui to the SecondaryNameNode for showing its status.
+ (szetszwo)
+
IMPROVEMENTS
HADOOP-4565. Added CombineFileInputFormat to use data locality information
Modified: hadoop/core/trunk/build.xml
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/build.xml?rev=742678&r1=742677&r2=742678&view=diff
==============================================================================
--- hadoop/core/trunk/build.xml (original)
+++ hadoop/core/trunk/build.xml Mon Feb 9 19:06:50 2009
@@ -415,6 +415,13 @@
webxml="${build.webapps}/datanode/WEB-INF/web.xml">
</jsp-compile>
+ <jsp-compile
+ uriroot="${src.webapps}/secondary"
+ outputdir="${build.src}"
+ package="org.apache.hadoop.hdfs.server.namenode"
+ webxml="${build.webapps}/secondary/WEB-INF/web.xml">
+ </jsp-compile>
+
<!-- Compile Java files (excluding JSPs) checking warnings -->
<javac
encoding="${build.encoding}"
Modified: hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/JspHelper.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/JspHelper.java?rev=742678&r1=742677&r2=742678&view=diff
==============================================================================
--- hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/JspHelper.java (original)
+++ hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/JspHelper.java Mon Feb 9 19:06:50 2009
@@ -371,4 +371,12 @@
+ "\n <tr><td id='col1'>Upgrades:</td><td>" + getUpgradeStatusText(fsn)
+ "\n</table></div>";
}
+
+ /** Return a table containing version information. */
+ public static String getVersionTable() {
+ return "<div id='dfstable'><table>"
+ + "\n <tr><td id='col1'>Version:</td><td>" + VersionInfo.getVersion() + ", " + VersionInfo.getRevision()
+ + "\n <tr><td id='col1'>Compiled:</td><td>" + VersionInfo.getDate() + " by " + VersionInfo.getUser() + " from " + VersionInfo.getBranch()
+ + "\n</table></div>";
+ }
}
Modified: hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java?rev=742678&r1=742677&r2=742678&view=diff
==============================================================================
--- hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java (original)
+++ hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java Mon Feb 9 19:06:50 2009
@@ -17,27 +17,30 @@
*/
package org.apache.hadoop.hdfs.server.namenode;
-import org.apache.commons.logging.*;
+import java.io.File;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Iterator;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocol;
-import org.apache.hadoop.hdfs.protocol.FSConstants;
import org.apache.hadoop.hdfs.server.common.HdfsConstants;
import org.apache.hadoop.hdfs.server.common.InconsistentFSStateException;
-import org.apache.hadoop.ipc.*;
-import org.apache.hadoop.conf.*;
-import org.apache.hadoop.util.StringUtils;
-import org.apache.hadoop.util.Daemon;
+import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocol;
import org.apache.hadoop.http.HttpServer;
-import org.apache.hadoop.net.NetUtils;
-
-import java.io.*;
-import java.net.*;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
+import org.apache.hadoop.ipc.RPC;
+import org.apache.hadoop.ipc.RemoteException;
import org.apache.hadoop.metrics.jvm.JvmMetrics;
+import org.apache.hadoop.net.NetUtils;
+import org.apache.hadoop.util.Daemon;
+import org.apache.hadoop.util.StringUtils;
/**********************************************************
* The Secondary NameNode is a helper to the primary NameNode.
@@ -57,6 +60,9 @@
public static final Log LOG =
LogFactory.getLog(SecondaryNameNode.class.getName());
+ private final long starttime = System.currentTimeMillis();
+ private volatile long lastCheckpointTime = 0;
+
private String fsName;
private CheckpointStorage checkpointImage;
@@ -73,6 +79,17 @@
private long checkpointPeriod; // in seconds
private long checkpointSize; // size (in MB) of current Edit Log
+ /** {@inheritDoc} */
+ public String toString() {
+ return getClass().getSimpleName() + " Status"
+ + "\nName Node Address : " + nameNodeAddr
+ + "\nStart Time : " + new Date(starttime)
+ + "\nLast Checkpoint Time : " + (lastCheckpointTime == 0? "--": new Date(lastCheckpointTime))
+ + "\nCheckpoint Period : " + checkpointPeriod + " seconds"
+ + "\nCheckpoint Size : " + checkpointSize + " MB"
+ + "\nCheckpoint Dirs : " + checkpointDirs
+ + "\nCheckpoint Edits Dirs: " + checkpointEditsDirs;
+ }
/**
* Utility class to facilitate junit test error simulation.
*/
@@ -159,6 +176,7 @@
int tmpInfoPort = infoSocAddr.getPort();
infoServer = new HttpServer("secondary", infoBindAddress, tmpInfoPort,
tmpInfoPort == 0, conf);
+ infoServer.setAttribute("secondary.name.node", this);
infoServer.setAttribute("name.system.image", checkpointImage);
this.infoServer.setAttribute("name.conf", conf);
infoServer.addInternalServlet("getimage", "/getimage", GetImageServlet.class);
@@ -202,7 +220,6 @@
// pending edit log.
//
long period = 5 * 60; // 5 minutes
- long lastCheckpointTime = 0;
if (checkpointPeriod < period) {
period = checkpointPeriod;
}
Added: hadoop/core/trunk/src/webapps/secondary/index.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/webapps/secondary/index.html?rev=742678&view=auto
==============================================================================
--- hadoop/core/trunk/src/webapps/secondary/index.html (added)
+++ hadoop/core/trunk/src/webapps/secondary/index.html Mon Feb 9 19:06:50 2009
@@ -0,0 +1,13 @@
+<meta HTTP-EQUIV="REFRESH" content="0;url=status.jsp"/>
+<html>
+<head><title>Hadoop Administration</title></head>
+
+<body>
+<h1>Hadoop Administration</h1>
+
+<ul>
+ <li><a href="status.jsp">Status</a></li>
+</ul>
+
+</body>
+</html>
Added: hadoop/core/trunk/src/webapps/secondary/status.jsp
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/webapps/secondary/status.jsp?rev=742678&view=auto
==============================================================================
--- hadoop/core/trunk/src/webapps/secondary/status.jsp (added)
+++ hadoop/core/trunk/src/webapps/secondary/status.jsp Mon Feb 9 19:06:50 2009
@@ -0,0 +1,20 @@
+<%@ page
+ contentType="text/html; charset=UTF-8"
+ import="org.apache.hadoop.util.*"
+%>
+
+<html>
+<link rel="stylesheet" type="text/css" href="/static/hadoop.css">
+<title>Hadoop SecondaryNameNode</title>
+
+<body>
+<h1>SecondaryNameNode</h1>
+<%= JspHelper.getVersionTable() %>
+<hr />
+<pre>
+<%= application.getAttribute("secondary.name.node").toString() %>
+</pre>
+
+<br />
+<b><a href="/logs/">Logs</a></b>
+<%= ServletUtil.htmlFooter() %>