Selaa lähdekoodia

HADOOP-1457. Add counters for monitoring task assignments. Contributed by Arun C Murthy.

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk@547649 13f79535-47bb-0310-9956-ffa450edef68
Thomas White 18 vuotta sitten
vanhempi
commit
542c7ccdce

+ 3 - 0
CHANGES.txt

@@ -127,6 +127,9 @@ Trunk (unreleased changes)
      making images appear in PDF.  Also update copyright date for all
      docs.  (Luke Nezda via cutting)
 
+ 41. HADOOP-1457.  Add counters for monitoring task assignments.
+     (Arun C Murthy via tomwhite)
+
 
 Release 0.13.0 - 2007-06-08
 

+ 15 - 1
src/java/org/apache/hadoop/mapred/JobInProgress.java

@@ -101,7 +101,10 @@ class JobInProgress {
   // Per-job counters
   public static enum Counter { 
     NUM_FAILED_MAPS, 
-    NUM_FAILED_REDUCES
+    NUM_FAILED_REDUCES,
+    TOTAL_LAUNCHED_MAPS,
+    TOTAL_LAUNCHED_REDUCES,
+    DATA_LOCAL_MAPS
   }
   private Counters jobCounters = new Counters();
   
@@ -508,12 +511,14 @@ class JobInProgress {
       LOG.info("Cannot create task split for " + profile.getJobId());
       return null;
     }
+    
     ArrayList mapCache = (ArrayList)hostToMaps.get(tts.getHost());
     int target = findNewTask(tts, clusterSize, status.mapProgress(), 
                              maps, mapCache);
     if (target == -1) {
       return null;
     }
+    
     boolean wasRunning = maps[target].isRunning();
     Task result = maps[target].getTaskToRun(tts.getTrackerName());
     if (!wasRunning) {
@@ -522,6 +527,9 @@ class JobInProgress {
                                  maps[target].getTIPId(), Values.MAP.name(),
                                  System.currentTimeMillis());
     }
+
+    jobCounters.incrCounter(Counter.TOTAL_LAUNCHED_MAPS, 1);
+
     return result;
   }    
 
@@ -543,6 +551,7 @@ class JobInProgress {
     if (target == -1) {
       return null;
     }
+    
     boolean wasRunning = reduces[target].isRunning();
     Task result = reduces[target].getTaskToRun(tts.getTrackerName());
     if (!wasRunning) {
@@ -551,6 +560,9 @@ class JobInProgress {
                                  reduces[target].getTIPId(), Values.REDUCE.name(),
                                  System.currentTimeMillis());
     }
+    
+    jobCounters.incrCounter(Counter.TOTAL_LAUNCHED_REDUCES, 1);
+
     return result;
   }
     
@@ -670,6 +682,7 @@ class JobInProgress {
             !tip.hasFailedOnMachine(taskTracker)) {
           LOG.info("Choosing cached task " + tip.getTIPId());
           int cacheTarget = tip.getIdWithinJob();
+          jobCounters.incrCounter(Counter.DATA_LOCAL_MAPS, 1);
           return cacheTarget;
         }
       }
@@ -717,6 +730,7 @@ class JobInProgress {
       LOG.info("Choosing failed task " + 
                tasks[failedTarget].getTIPId());          
     }
+    
     return specTarget != -1 ? specTarget : failedTarget;
   }
 

+ 10 - 0
src/java/org/apache/hadoop/mapred/JobInProgress_Counter.properties

@@ -0,0 +1,10 @@
+# ResourceBundle properties file for job-level counters
+
+CounterGroupName=              Job Counters 
+
+NUM_FAILED_MAPS.name=          Failed map tasks
+NUM_FAILED_REDUCES.name=       Failed reduce tasks
+TOTAL_LAUNCHED_MAPS.name=      Launched map tasks
+TOTAL_LAUNCHED_REDUCES.name=   Launched reduce tasks
+DATA_LOCAL_MAPS.name=          Data-local map tasks
+