<%@ page contentType="text/html; charset=UTF-8" import="javax.servlet.*" import="javax.servlet.http.*" import="java.io.*" import="java.util.*" import="org.apache.nutch.mapReduce.*" %> <%! JobTracker tracker = JobTracker.getTracker(); String trackerLabel = tracker.getJobTrackerMachine() + ":" + tracker.getTrackerPort(); 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("
\n"); out.print("\n"); out.print("\n"); out.print("\n"); 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++; } out.print("\n"); } out.print("
Task Trackers
NameHost# running tasksSecs since heartbeat
" + tt.getTrackerName() + "" + tt.getHost() + "" + numCurTasks + "" + sinceHeartbeat + "
\n"); out.print("
\n"); } } public void generateJobTable(JspWriter out, String label, Vector jobs) throws IOException { out.print("
\n"); out.print("\n"); out.print("\n"); if (jobs.size() > 0) { out.print("\n"); for (Iterator it = jobs.iterator(); it.hasNext(); ) { JobTracker.JobInProgress job = (JobTracker.JobInProgress) it.next(); JobProfile profile = job.getProfile(); JobStatus status = job.getStatus(); String jobid = profile.getJobId(); float completedRatio = (100 * job.completedRatio()); int desiredMaps = job.desiredMaps(); int attemptedMaps = job.attemptedMaps(); int completedMaps = job.completedMaps(); int desiredReduces = job.desiredReduces(); int attemptedReduces = job.attemptedReduces(); int completedReduces = job.completedReduces(); out.print("\n"); } } else { out.print("\n"); } out.print("
" + label + " Jobs
Jobid% completeRequired mapsmaps attemptedmaps completedRequired reducesreduces attemptedreduces completed
" + jobid + "" + completedRatio + "%" + desiredMaps + "" + attemptedMaps + "" + completedMaps + "" + desiredReduces + "" + attemptedReduces + " " + completedReduces + "
none
\n"); out.print("
\n"); } %> Nutch MapReduce General Administration

JobTracker '<%=trackerLabel%>'

This JobTracker has been up since <%= new Date(tracker.getStartTime())%>.

Task Trackers

<% generateTaskTrackerTable(out); %>

Running Jobs

<% generateJobTable(out, "Running", tracker.runningJobs()); %>

Completed Jobs

<% generateJobTable(out, "Completed", tracker.completedJobs()); %>

Failed Jobs

<% generateJobTable(out, "Failed", tracker.failedJobs()); %>
Nutch, 2005.