%@ 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 trackerName =
StringUtils.simpleHostname(tracker.getJobTrackerMachine());
private void printTaskSummary(JspWriter out,
String jobId,
String kind,
double completePercent,
TaskInProgress[] tasks
) throws IOException {
int totalTasks = tasks.length;
int runningTasks = 0;
int finishedTasks = 0;
int killedTasks = 0;
int failures = 0;
for(int i=0; i < totalTasks; ++i) {
TaskInProgress task = tasks[i];
if (task.isComplete()) {
finishedTasks += 1;
} else if (task.isRunning()) {
runningTasks += 1;
} else if (task.wasKilled()) {
killedTasks += 1;
}
failures += task.numTaskFailures();
}
out.print("
" + kind + " | " +
StringUtils.formatPercent(completePercent, 2) +
" | " + totalTasks + " | " +
(totalTasks - runningTasks - finishedTasks - killedTasks) +
" | " +
runningTasks + " | " +
finishedTasks + " | " +
killedTasks +
" | " +
failures + " |
\n");
}
private void printJobStatus(JspWriter out,
String jobId) throws IOException {
JobInProgress job = (JobInProgress) tracker.getJob(jobId);
if (job == null) {
out.print("Job " + jobId + " not found.
\n");
return;
}
JobProfile profile = job.getProfile();
JobStatus status = job.getStatus();
int runState = status.getRunState();
out.print("User: " + profile.getUser() + "
\n");
out.print("Job Name: " + profile.getJobName() + "
\n");
if (runState == JobStatus.RUNNING) {
out.print("Job File: " +
profile.getJobFile() + "
\n");
} else {
out.print("Job File: " + profile.getJobFile() + "
\n");
}
out.print("Started at: " + new Date(job.getStartTime()) + "
\n");
if (runState == JobStatus.RUNNING) {
out.print("Status: Running
\n");
} else {
if (runState == JobStatus.SUCCEEDED) {
out.print("Status: Succeeded
\n");
} else if (runState == JobStatus.FAILED) {
out.print("Status: Failed
\n");
}
out.print("Finished at: " + new Date(job.getFinishTime()) +
"
\n");
}
out.print("
\n");
out.print("");
out.print("Kind | % Complete | Num Tasks | " +
"Pending | Running | Complete | " +
"Killed | " +
"Failures |
\n");
printTaskSummary(out, jobId, "map", status.mapProgress(),
job.getMapTasks());
printTaskSummary(out, jobId, "reduce", status.reduceProgress(),
job.getReduceTasks());
out.print("
\n");
}
%>
<%
String jobid = request.getParameter("jobid");
%>
Hadoop <%=jobid%> on <%=trackerName%>
<%
printJobStatus(out, jobid);
%>
Go back to JobTracker
Hadoop, 2006.