瀏覽代碼

HADOOP-1238. Fix metrics reporting by TaskTracker to correctly track maps_running and reduces_running. Contributed by Michael Bieniosek.

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk@527711 13f79535-47bb-0310-9956-ffa450edef68
Doug Cutting 18 年之前
父節點
當前提交
97ebc3c461
共有 2 個文件被更改,包括 15 次插入3 次删除
  1. 4 0
      CHANGES.txt
  2. 11 3
      src/java/org/apache/hadoop/mapred/TaskTracker.java

+ 4 - 0
CHANGES.txt

@@ -176,6 +176,10 @@ Trunk (unreleased changes)
 53. HADOOP-1213.  Improve logging of errors by IPC server, to
     consistently include the service name and the call.  (cutting)
 
+54. HADOOP-1238.  Fix metrics reporting by TaskTracker to correctly
+    track maps_running and reduces_running.
+    (Michael Bieniosek via cutting)
+
 
 Release 0.12.3 - 2007-04-06
 

+ 11 - 3
src/java/org/apache/hadoop/mapred/TaskTracker.java

@@ -155,11 +155,16 @@ public class TaskTracker
       synchronized void completeTask() {
         if (metricsRecord != null) {
           metricsRecord.incrMetric("tasks_completed", 1);
-          metricsRecord.setMetric("maps_running", mapTotal);
-          metricsRecord.setMetric("reduces_running", reduceTotal);
-          metricsRecord.update();
         }
       }
+      
+      synchronized void update() {
+          if (metricsRecord != null) {
+            metricsRecord.setMetric("maps_running", mapTotal);
+            metricsRecord.setMetric("reduces_running", reduceTotal);
+            metricsRecord.update();
+          }
+      }
     }
     
     private TaskTrackerMetrics myMetrics = null;
@@ -638,6 +643,7 @@ public class TaskTracker
             }
             try {
               myMetrics.completeTask();
+              myMetrics.update();
             } catch (MetricsException me) {
               LOG.warn("Caught: " + StringUtils.stringifyException(me));
             }
@@ -866,6 +872,7 @@ public class TaskTracker
         } else {
           reduceTotal++;
         }
+        myMetrics.update();
       }
       try {
     	  localizeJob(tip);
@@ -1245,6 +1252,7 @@ public class TaskTracker
                                    failure);
               runningTasks.put(task.getTaskId(), this);
               mapTotal++;
+              myMetrics.update();
             } else {
               LOG.warn("Output already reported lost:"+task.getTaskId());
             }