Browse Source

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 years ago
parent
commit
542c7ccdce

+ 3 - 0
CHANGES.txt

@@ -127,6 +127,9 @@ Trunk (unreleased changes)
      making images appear in PDF.  Also update copyright date for all
      making images appear in PDF.  Also update copyright date for all
      docs.  (Luke Nezda via cutting)
      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
 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
   // Per-job counters
   public static enum Counter { 
   public static enum Counter { 
     NUM_FAILED_MAPS, 
     NUM_FAILED_MAPS, 
-    NUM_FAILED_REDUCES
+    NUM_FAILED_REDUCES,
+    TOTAL_LAUNCHED_MAPS,
+    TOTAL_LAUNCHED_REDUCES,
+    DATA_LOCAL_MAPS
   }
   }
   private Counters jobCounters = new Counters();
   private Counters jobCounters = new Counters();
   
   
@@ -508,12 +511,14 @@ class JobInProgress {
       LOG.info("Cannot create task split for " + profile.getJobId());
       LOG.info("Cannot create task split for " + profile.getJobId());
       return null;
       return null;
     }
     }
+    
     ArrayList mapCache = (ArrayList)hostToMaps.get(tts.getHost());
     ArrayList mapCache = (ArrayList)hostToMaps.get(tts.getHost());
     int target = findNewTask(tts, clusterSize, status.mapProgress(), 
     int target = findNewTask(tts, clusterSize, status.mapProgress(), 
                              maps, mapCache);
                              maps, mapCache);
     if (target == -1) {
     if (target == -1) {
       return null;
       return null;
     }
     }
+    
     boolean wasRunning = maps[target].isRunning();
     boolean wasRunning = maps[target].isRunning();
     Task result = maps[target].getTaskToRun(tts.getTrackerName());
     Task result = maps[target].getTaskToRun(tts.getTrackerName());
     if (!wasRunning) {
     if (!wasRunning) {
@@ -522,6 +527,9 @@ class JobInProgress {
                                  maps[target].getTIPId(), Values.MAP.name(),
                                  maps[target].getTIPId(), Values.MAP.name(),
                                  System.currentTimeMillis());
                                  System.currentTimeMillis());
     }
     }
+
+    jobCounters.incrCounter(Counter.TOTAL_LAUNCHED_MAPS, 1);
+
     return result;
     return result;
   }    
   }    
 
 
@@ -543,6 +551,7 @@ class JobInProgress {
     if (target == -1) {
     if (target == -1) {
       return null;
       return null;
     }
     }
+    
     boolean wasRunning = reduces[target].isRunning();
     boolean wasRunning = reduces[target].isRunning();
     Task result = reduces[target].getTaskToRun(tts.getTrackerName());
     Task result = reduces[target].getTaskToRun(tts.getTrackerName());
     if (!wasRunning) {
     if (!wasRunning) {
@@ -551,6 +560,9 @@ class JobInProgress {
                                  reduces[target].getTIPId(), Values.REDUCE.name(),
                                  reduces[target].getTIPId(), Values.REDUCE.name(),
                                  System.currentTimeMillis());
                                  System.currentTimeMillis());
     }
     }
+    
+    jobCounters.incrCounter(Counter.TOTAL_LAUNCHED_REDUCES, 1);
+
     return result;
     return result;
   }
   }
     
     
@@ -670,6 +682,7 @@ class JobInProgress {
             !tip.hasFailedOnMachine(taskTracker)) {
             !tip.hasFailedOnMachine(taskTracker)) {
           LOG.info("Choosing cached task " + tip.getTIPId());
           LOG.info("Choosing cached task " + tip.getTIPId());
           int cacheTarget = tip.getIdWithinJob();
           int cacheTarget = tip.getIdWithinJob();
+          jobCounters.incrCounter(Counter.DATA_LOCAL_MAPS, 1);
           return cacheTarget;
           return cacheTarget;
         }
         }
       }
       }
@@ -717,6 +730,7 @@ class JobInProgress {
       LOG.info("Choosing failed task " + 
       LOG.info("Choosing failed task " + 
                tasks[failedTarget].getTIPId());          
                tasks[failedTarget].getTIPId());          
     }
     }
+    
     return specTarget != -1 ? specTarget : failedTarget;
     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
+