| <%@ page |
| contentType="text/html; charset=UTF-8" |
| import="javax.servlet.*" |
| import="javax.servlet.http.*" |
| import="java.io.*" |
| import="java.util.*" |
| import="java.text.DecimalFormat" |
| import="org.apache.hadoop.mapred.*" |
| import="org.apache.hadoop.util.*" |
| %> |
| <%! |
| JobTracker tracker = JobTracker.getTracker(); |
| String trackerLabel = |
| StringUtils.simpleHostname(tracker.getJobTrackerMachine()); |
| private static DecimalFormat percentFormat = new DecimalFormat("##0.00"); |
| |
| public void generateTaskTrackerTable(JspWriter out) throws IOException { |
| Collection c = tracker.taskTrackers(); |
| |
| if (c.size() == 0) { |
| out.print("There are currently no known TaskTracker(s)."); |
| } else { |
| out.print("<center>\n"); |
| out.print("<table border=\"2\" cellpadding=\"5\" cellspacing=\"2\">\n"); |
| out.print("<tr><td align=\"center\" colspan=\"5\"><b>Task Trackers</b></td></tr>\n"); |
| out.print("<tr><td><b>Name</b></td><td><b>Host</b></td>" + |
| "<td><b># running tasks</b></td><td><b>Failures</b></td>" + |
| "<td><b>Secs since heartbeat</b></td></tr>\n"); |
| int maxFailures = 0; |
| String failureKing = null; |
| for (Iterator it = c.iterator(); it.hasNext(); ) { |
| TaskTrackerStatus tt = (TaskTrackerStatus) it.next(); |
| long sinceHeartbeat = System.currentTimeMillis() - tt.getLastSeen(); |
| if (sinceHeartbeat > 0) { |
| sinceHeartbeat = sinceHeartbeat / 1000; |
| } |
| int numCurTasks = 0; |
| for (Iterator it2 = tt.taskReports(); it2.hasNext(); ) { |
| it2.next(); |
| numCurTasks++; |
| } |
| int numFailures = tt.getFailures(); |
| if (numFailures > maxFailures) { |
| maxFailures = numFailures; |
| failureKing = tt.getTrackerName(); |
| } |
| out.print("<tr><td><a href=\"http://"); |
| out.print(tt.getHost() + ":" + tt.getHttpPort() + "/\">"); |
| out.print(tt.getTrackerName() + "</a></td><td>"); |
| out.print(tt.getHost() + "</td><td>" + numCurTasks + |
| "</td><td>" + numFailures + |
| "</td><td>" + sinceHeartbeat + "</td></tr>\n"); |
| } |
| out.print("</table>\n"); |
| out.print("</center>\n"); |
| if (maxFailures > 0) { |
| out.print("Highest Failures: " + failureKing + " with " + maxFailures + |
| " failures<br>\n"); |
| } |
| } |
| } |
| |
| %> |
| |
| <html> |
| |
| <title><%=trackerLabel%> Hadoop Machine List</title> |
| |
| <body> |
| <h1><a href="/jobtracker.jsp"><%=trackerLabel%></a> Hadoop Machine List</h1> |
| |
| <h2>Task Trackers</h2> |
| <% |
| generateTaskTrackerTable(out); |
| %> |
| |
| <hr> |
| <a href="http://lucene.apache.org/hadoop">Hadoop</a>, 2006.<br> |
| </body> |
| </html> |