<%@ 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 generateJobTable(JspWriter out, String label, Vector jobs, int refresh) throws IOException { out.print("
\n"); out.print("\n"); out.print("\n"); if (jobs.size() > 0) { out.print(""); out.print(""); out.print(""); out.print(""); out.print(""); out.print(""); out.print(""); out.print("\n"); for (Iterator it = jobs.iterator(); it.hasNext(); ) { JobInProgress job = (JobInProgress) it.next(); JobProfile profile = job.getProfile(); JobStatus status = job.getStatus(); String jobid = profile.getJobId(); int desiredMaps = job.desiredMaps(); int desiredReduces = job.desiredReduces(); int completedMaps = job.finishedMaps(); int completedReduces = job.finishedReduces(); String name = profile.getJobName(); out.print("" + "" + "" + "\n"); } } else { out.print("\n"); } out.print("
" + label + " Jobs
JobidUserNameMap % completeMap totalMaps completedReduce % completeReduce totalReduces completed
" + jobid + "" + profile.getUser() + "" + ("".equals(name) ? " " : name) + "" + StringUtils.formatPercent(status.mapProgress(),2) + "" + desiredMaps + "" + completedMaps + "" + StringUtils.formatPercent(status.reduceProgress(),2) + "" + desiredReduces + " " + completedReduces + "
none
\n"); out.print("
\n"); } public void generateSummaryTable(JspWriter out) throws IOException { ClusterStatus status = tracker.getClusterStatus(); out.print("\n"+ "" + "" + "\n"); out.print("
MapsReducesTasks/NodeTotal SubmissionsNodes
" + status.getMapTasks() + "" + status.getReduceTasks() + "" + status.getMaxTasks() + "" + tracker.getTotalSubmissions() + "" + status.getTaskTrackers() + "
\n"); } %> <%= trackerLabel %> Hadoop Map/Reduce Administration

<%= trackerLabel %> Hadoop Map/Reduce Administration

Started: <%= new Date(tracker.getStartTime())%>
Version: <%= VersionInfo.getVersion()%>, r<%= VersionInfo.getRevision()%>
Compiled: <%= VersionInfo.getDate()%> by <%= VersionInfo.getUser()%>

Cluster Summary

<% generateSummaryTable(out); %>

Running Jobs

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

Completed Jobs

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

Failed Jobs

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

Local logs

Log directory, Job Tracker History
Hadoop, 2006.