|
@@ -23,6 +23,7 @@ import java.io.IOException;
|
|
|
import java.lang.management.ManagementFactory;
|
|
|
import java.lang.management.MemoryMXBean;
|
|
|
import java.lang.management.MemoryUsage;
|
|
|
+import java.net.InetAddress;
|
|
|
import java.net.InetSocketAddress;
|
|
|
import java.net.URI;
|
|
|
import java.net.URLEncoder;
|
|
@@ -60,6 +61,7 @@ import org.apache.hadoop.hdfs.server.namenode.startupprogress.Status;
|
|
|
import org.apache.hadoop.hdfs.server.namenode.startupprogress.Step;
|
|
|
import org.apache.hadoop.hdfs.server.namenode.startupprogress.StepType;
|
|
|
import org.apache.hadoop.hdfs.server.protocol.NamenodeProtocols;
|
|
|
+import org.apache.hadoop.http.HttpConfig;
|
|
|
import org.apache.hadoop.io.Text;
|
|
|
import org.apache.hadoop.net.NodeBase;
|
|
|
import org.apache.hadoop.security.UserGroupInformation;
|
|
@@ -724,11 +726,11 @@ class NamenodeJspHelper {
|
|
|
}
|
|
|
|
|
|
private void generateNodeDataHeader(JspWriter out, DatanodeDescriptor d,
|
|
|
- String suffix, boolean alive, int nnHttpPort, String nnaddr, String scheme)
|
|
|
+ String suffix, boolean alive, int nnInfoPort, String nnaddr, String scheme)
|
|
|
throws IOException {
|
|
|
// from nn_browsedfscontent.jsp:
|
|
|
String url = "///" + JspHelper.Url.authority(scheme, d)
|
|
|
- + "/browseDirectory.jsp?namenodeInfoPort=" + nnHttpPort + "&dir="
|
|
|
+ + "/browseDirectory.jsp?namenodeInfoPort=" + nnInfoPort + "&dir="
|
|
|
+ URLEncoder.encode("/", "UTF-8")
|
|
|
+ JspHelper.getUrlParam(JspHelper.NAMENODE_ADDRESS, nnaddr);
|
|
|
|
|
@@ -745,9 +747,9 @@ class NamenodeJspHelper {
|
|
|
}
|
|
|
|
|
|
void generateDecommissioningNodeData(JspWriter out, DatanodeDescriptor d,
|
|
|
- String suffix, boolean alive, int nnHttpPort, String nnaddr, String scheme)
|
|
|
+ String suffix, boolean alive, int nnInfoPort, String nnaddr, String scheme)
|
|
|
throws IOException {
|
|
|
- generateNodeDataHeader(out, d, suffix, alive, nnHttpPort, nnaddr, scheme);
|
|
|
+ generateNodeDataHeader(out, d, suffix, alive, nnInfoPort, nnaddr, scheme);
|
|
|
if (!alive) {
|
|
|
return;
|
|
|
}
|
|
@@ -771,7 +773,7 @@ class NamenodeJspHelper {
|
|
|
}
|
|
|
|
|
|
void generateNodeData(JspWriter out, DatanodeDescriptor d, String suffix,
|
|
|
- boolean alive, int nnHttpPort, String nnaddr, String scheme) throws IOException {
|
|
|
+ boolean alive, int nnInfoPort, String nnaddr, String scheme) throws IOException {
|
|
|
/*
|
|
|
* Say the datanode is dn1.hadoop.apache.org with ip 192.168.0.5 we use:
|
|
|
* 1) d.getHostName():d.getPort() to display. Domain and port are stripped
|
|
@@ -783,7 +785,7 @@ class NamenodeJspHelper {
|
|
|
* interact with datanodes.
|
|
|
*/
|
|
|
|
|
|
- generateNodeDataHeader(out, d, suffix, alive, nnHttpPort, nnaddr, scheme);
|
|
|
+ generateNodeDataHeader(out, d, suffix, alive, nnInfoPort, nnaddr, scheme);
|
|
|
if (!alive) {
|
|
|
out.print("<td class=\"decommissioned\"> " +
|
|
|
d.isDecommissioned() + "\n");
|
|
@@ -849,11 +851,8 @@ class NamenodeJspHelper {
|
|
|
final List<DatanodeDescriptor> dead = new ArrayList<DatanodeDescriptor>();
|
|
|
dm.fetchDatanodes(live, dead, true);
|
|
|
|
|
|
- InetSocketAddress nnSocketAddress =
|
|
|
- (InetSocketAddress)context.getAttribute(
|
|
|
- NameNodeHttpServer.NAMENODE_ADDRESS_ATTRIBUTE_KEY);
|
|
|
- String nnaddr = nnSocketAddress.getAddress().getHostAddress() + ":"
|
|
|
- + nnSocketAddress.getPort();
|
|
|
+ String nnaddr = nn.getServiceRpcAddress().getAddress().getHostName() + ":"
|
|
|
+ + nn.getServiceRpcAddress().getPort();
|
|
|
|
|
|
whatNodes = request.getParameter("whatNodes"); // show only live or only
|
|
|
// dead nodes
|
|
@@ -889,16 +888,11 @@ class NamenodeJspHelper {
|
|
|
|
|
|
counterReset();
|
|
|
|
|
|
- try {
|
|
|
- Thread.sleep(1000);
|
|
|
- } catch (InterruptedException e) {
|
|
|
- }
|
|
|
-
|
|
|
if (live.isEmpty() && dead.isEmpty()) {
|
|
|
out.print("There are no datanodes in the cluster");
|
|
|
} else {
|
|
|
|
|
|
- int nnHttpPort = nn.getHttpAddress().getPort();
|
|
|
+ int nnInfoPort = request.getServerPort();
|
|
|
out.print("<div id=\"dfsnodetable\"> ");
|
|
|
if (whatNodes.equals("LIVE")) {
|
|
|
out.print("<a name=\"LiveNodes\" id=\"title\">" + "Live Datanodes : "
|
|
@@ -940,7 +934,7 @@ class NamenodeJspHelper {
|
|
|
|
|
|
JspHelper.sortNodeList(live, sorterField, sorterOrder);
|
|
|
for (int i = 0; i < live.size(); i++) {
|
|
|
- generateNodeData(out, live.get(i), port_suffix, true, nnHttpPort,
|
|
|
+ generateNodeData(out, live.get(i), port_suffix, true, nnInfoPort,
|
|
|
nnaddr, request.getScheme());
|
|
|
}
|
|
|
}
|
|
@@ -961,7 +955,7 @@ class NamenodeJspHelper {
|
|
|
JspHelper.sortNodeList(dead, sorterField, sorterOrder);
|
|
|
for (int i = 0; i < dead.size(); i++) {
|
|
|
generateNodeData(out, dead.get(i), port_suffix, false,
|
|
|
- nnHttpPort, nnaddr, request.getScheme());
|
|
|
+ nnInfoPort, nnaddr, request.getScheme());
|
|
|
}
|
|
|
|
|
|
out.print("</table>\n");
|
|
@@ -992,7 +986,7 @@ class NamenodeJspHelper {
|
|
|
JspHelper.sortNodeList(decommissioning, "name", "ASC");
|
|
|
for (int i = 0; i < decommissioning.size(); i++) {
|
|
|
generateDecommissioningNodeData(out, decommissioning.get(i),
|
|
|
- port_suffix, true, nnHttpPort, nnaddr, request.getScheme());
|
|
|
+ port_suffix, true, nnInfoPort, nnaddr, request.getScheme());
|
|
|
}
|
|
|
out.print("</table>\n");
|
|
|
}
|