<%@ 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) application.getAttribute("job.tracker"); String trackerName = 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) + JspHelper.percentageGraph(status.mapProgress() * 100, 80) + "" + desiredMaps + "" + completedMaps + "" + StringUtils.formatPercent(status.reduceProgress(),2) + JspHelper.percentageGraph(status.reduceProgress() * 100, 80) + "" + desiredReduces + " " + completedReduces + "
none
\n"); out.print("
\n"); } public void generateSummaryTable(JspWriter out, JobTracker tracker) 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"); }%> <%@page import="org.apache.hadoop.dfs.JspHelper"%> <%= trackerName %> Hadoop Map/Reduce Administration

<%= trackerName %> Hadoop Map/Reduce Administration

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

Cluster Summary

<% generateSummaryTable(out, tracker); %>

Running Jobs

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

Completed Jobs

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

Failed Jobs

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

Local logs

Log directory, Job Tracker History
Hadoop, 2007.