瀏覽代碼

HADOOP-4125. Handles Reduce cleanup tip on the web ui. Contributed by Amareshwari Sriramadasu.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/core/trunk@696228 13f79535-47bb-0310-9956-ffa450edef68
Devaraj Das 16 年之前
父節點
當前提交
c6ecf566dc

+ 3 - 0
CHANGES.txt

@@ -583,6 +583,9 @@ Trunk (unreleased changes)
 
     HADOOP-3623. Refactor LeaseManager. (szetszwo)
 
+    HADOOP-4125. Handles Reduce cleanup tip on the web ui.
+    (Amareshwari Sriramadasu via ddas)
+
 Release 0.18.1 - 2008-09-17
 
   IMPROVEMENTS

+ 5 - 4
src/mapred/org/apache/hadoop/mapred/JobInProgress.java

@@ -2017,10 +2017,8 @@ class JobInProgress {
    */
   public synchronized TaskInProgress getTaskInProgress(TaskID tipid) {
     if (tipid.isMap()) {
-      for (int i = 0; i < cleanup.length; i++) {
-        if (tipid.equals(cleanup[i].getTIPId())){
-          return cleanup[i];
-        }
+      if (tipid.getId() == maps.length) { // cleanup map tip
+        return cleanup[0]; 
       }
       for (int i = 0; i < maps.length; i++) {
         if (tipid.equals(maps[i].getTIPId())){
@@ -2028,6 +2026,9 @@ class JobInProgress {
         }
       }
     } else {
+      if (tipid.getId() == reduces.length) { // cleanup reduce tip
+        return cleanup[1]; 
+      }
       for (int i = 0; i < reduces.length; i++) {
         if (tipid.equals(reduces[i].getTIPId())){
           return reduces[i];

+ 8 - 3
src/mapred/org/apache/hadoop/mapred/ReduceTask.java

@@ -111,9 +111,9 @@ class ReduceTask extends Task {
   }
 
 
-  private Progress copyPhase = getProgress().addPhase("copy");
-  private Progress sortPhase  = getProgress().addPhase("sort");
-  private Progress reducePhase = getProgress().addPhase("reduce");
+  private Progress copyPhase;
+  private Progress sortPhase;
+  private Progress reducePhase;
   private Counters.Counter reduceInputKeyCounter = 
     getCounters().findCounter(Counter.REDUCE_INPUT_GROUPS);
   private Counters.Counter reduceInputValueCounter = 
@@ -324,6 +324,11 @@ class ReduceTask extends Task {
     job.setBoolean("mapred.skip.on", isSkipping());
     Reducer reducer = ReflectionUtils.newInstance(job.getReducerClass(), job);
 
+    if (!cleanupJob) {
+      copyPhase = getProgress().addPhase("copy");
+      sortPhase  = getProgress().addPhase("sort");
+      reducePhase = getProgress().addPhase("reduce");
+    }
     // start thread that will handle communication with parent
     startCommunicationThread(umbilical);
     final Reporter reporter = getReporter(umbilical);

+ 6 - 2
src/webapps/job/taskdetails.jsp

@@ -70,6 +70,10 @@
     }
     TaskStatus[] ts = (job != null) ? tracker.getTaskStatuses(tipidObj)
         : null;
+    boolean isCleanup = false;
+    if (tipidObj != null) { 
+      isCleanup = job.getTaskInProgress(tipidObj).isCleanupTask();
+    }
 %>
 
 <%@page import="org.apache.hadoop.hdfs.server.namenode.JspHelper"%>
@@ -95,7 +99,7 @@
 <table border=2 cellpadding="5" cellspacing="2">
 <tr><td align="center">Task Attempts</td><td>Machine</td><td>Status</td><td>Progress</td><td>Start Time</td> 
   <%
-   if (!ts[0].getIsMap()) {
+   if (!ts[0].getIsMap() && !isCleanup) {
    %>
 <td>Shuffle Finished</td><td>Sort Finished</td>
   <%
@@ -123,7 +127,7 @@
         out.print("<td>"
           + StringUtils.getFormattedTimeWithDiff(dateFormat, status
           .getStartTime(), 0) + "</td>");
-        if (!ts[i].getIsMap()) {
+        if (!ts[i].getIsMap() && !isCleanup) {
           out.print("<td>"
           + StringUtils.getFormattedTimeWithDiff(dateFormat, status
           .getShuffleFinishTime(), status.getStartTime()) + "</td>");