machines.jsp 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <%@ page
  2. contentType="text/html; charset=UTF-8"
  3. import="javax.servlet.*"
  4. import="javax.servlet.http.*"
  5. import="java.io.*"
  6. import="java.util.*"
  7. import="java.text.DecimalFormat"
  8. import="org.apache.hadoop.mapred.*"
  9. import="org.apache.hadoop.util.*"
  10. %>
  11. <%!
  12. JobTracker tracker = JobTracker.getTracker();
  13. String trackerLabel =
  14. StringUtils.simpleHostname(tracker.getJobTrackerMachine());
  15. private static DecimalFormat percentFormat = new DecimalFormat("##0.00");
  16. public void generateTaskTrackerTable(JspWriter out) throws IOException {
  17. Collection c = tracker.taskTrackers();
  18. if (c.size() == 0) {
  19. out.print("There are currently no known TaskTracker(s).");
  20. } else {
  21. out.print("<center>\n");
  22. out.print("<table border=\"2\" cellpadding=\"5\" cellspacing=\"2\">\n");
  23. out.print("<tr><td align=\"center\" colspan=\"5\"><b>Task Trackers</b></td></tr>\n");
  24. out.print("<tr><td><b>Name</b></td><td><b>Host</b></td>" +
  25. "<td><b># running tasks</b></td><td><b>Failures</b></td>" +
  26. "<td><b>Secs since heartbeat</b></td></tr>\n");
  27. int maxFailures = 0;
  28. String failureKing = null;
  29. for (Iterator it = c.iterator(); it.hasNext(); ) {
  30. TaskTrackerStatus tt = (TaskTrackerStatus) it.next();
  31. long sinceHeartbeat = System.currentTimeMillis() - tt.getLastSeen();
  32. if (sinceHeartbeat > 0) {
  33. sinceHeartbeat = sinceHeartbeat / 1000;
  34. }
  35. int numCurTasks = 0;
  36. for (Iterator it2 = tt.taskReports(); it2.hasNext(); ) {
  37. it2.next();
  38. numCurTasks++;
  39. }
  40. int numFailures = tt.getFailures();
  41. if (numFailures > maxFailures) {
  42. maxFailures = numFailures;
  43. failureKing = tt.getTrackerName();
  44. }
  45. out.print("<tr><td><a href=\"http://");
  46. out.print(tt.getHost() + ":" + tt.getHttpPort() + "/\">");
  47. out.print(tt.getTrackerName() + "</a></td><td>");
  48. out.print(tt.getHost() + "</td><td>" + numCurTasks +
  49. "</td><td>" + numFailures +
  50. "</td><td>" + sinceHeartbeat + "</td></tr>\n");
  51. }
  52. out.print("</table>\n");
  53. out.print("</center>\n");
  54. if (maxFailures > 0) {
  55. out.print("Highest Failures: " + failureKing + " with " + maxFailures +
  56. " failures<br>\n");
  57. }
  58. }
  59. }
  60. %>
  61. <html>
  62. <title><%=trackerLabel%> Hadoop Machine List</title>
  63. <body>
  64. <h1><a href="/jobtracker.jsp"><%=trackerLabel%></a> Hadoop Machine List</h1>
  65. <h2>Task Trackers</h2>
  66. <%
  67. generateTaskTrackerTable(out);
  68. %>
  69. <hr>
  70. <a href="http://lucene.apache.org/hadoop">Hadoop</a>, 2006.<br>
  71. </body>
  72. </html>