You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by to...@apache.org on 2012/03/15 01:32:16 UTC

svn commit: r1300798 - in /hadoop/common/branches/branch-1: CHANGES.txt src/mapred/mapred-default.xml src/mapred/org/apache/hadoop/mapred/Counters.java src/test/org/apache/hadoop/mapred/TestUserDefinedCounters.java

Author: tomwhite
Date: Thu Mar 15 00:32:15 2012
New Revision: 1300798

URL: http://svn.apache.org/viewvc?rev=1300798&view=rev
Log:
MAPREDUCE-2835. Make per-job counter limits configurable.

Modified:
    hadoop/common/branches/branch-1/CHANGES.txt
    hadoop/common/branches/branch-1/src/mapred/mapred-default.xml
    hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/Counters.java
    hadoop/common/branches/branch-1/src/test/org/apache/hadoop/mapred/TestUserDefinedCounters.java

Modified: hadoop/common/branches/branch-1/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/CHANGES.txt?rev=1300798&r1=1300797&r2=1300798&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/CHANGES.txt (original)
+++ hadoop/common/branches/branch-1/CHANGES.txt Thu Mar 15 00:32:15 2012
@@ -157,6 +157,8 @@ Release 1.1.0 - unreleased
     HDFS-3075. Backport HADOOP-4885: Try to restore failed name-node storage
     directories at checkpoint time.  (Brandon Li via szetszwo)
 
+    MAPREDUCE-2835. Make per-job counter limits configurable. (tomwhite)
+
 Release 1.0.2 - unreleased
 
   NEW FEATURES

Modified: hadoop/common/branches/branch-1/src/mapred/mapred-default.xml
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/mapred/mapred-default.xml?rev=1300798&r1=1300797&r2=1300798&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/src/mapred/mapred-default.xml (original)
+++ hadoop/common/branches/branch-1/src/mapred/mapred-default.xml Thu Mar 15 00:32:15 2012
@@ -1233,13 +1233,36 @@
   </description>
 </property>
 
+<!--  end of node health script variables -->
+
 <property>
-  <name>mapreduce.job.counters.limit</name>
+  <name>mapreduce.job.counters.max</name>
   <value>120</value>
   <description>Limit on the number of counters allowed per job.
   </description>
 </property>
 
-<!--  end of node health script variables -->
+<property>
+  <name>mapreduce.job.counters.groups.max</name>
+  <value>50</value>
+  <description>Limit on the number of counter groups allowed per job.
+  </description>
+</property>
+
+<property>
+  <name>mapreduce.job.counters.counter.name.max</name>
+  <value>64</value>
+  <description>Limit on the length of counter names in jobs. Names
+  exceeding this limit will be truncated.
+  </description>
+</property>
+
+<property>
+  <name>mapreduce.job.counters.group.name.max</name>
+  <value>128</value>
+  <description>Limit on the length of counter group names in jobs. Names
+  exceeding this limit will be truncated.
+  </description>
+</property>
 
 </configuration>

Modified: hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/Counters.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/Counters.java?rev=1300798&r1=1300797&r2=1300798&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/Counters.java (original)
+++ hadoop/common/branches/branch-1/src/mapred/org/apache/hadoop/mapred/Counters.java Thu Mar 15 00:32:15 2012
@@ -59,18 +59,22 @@ public class Counters implements Writabl
   private static char[] charsToEscape =  {GROUP_OPEN, GROUP_CLOSE, 
                                           COUNTER_OPEN, COUNTER_CLOSE, 
                                           UNIT_OPEN, UNIT_CLOSE};
+  private static final JobConf conf = new JobConf();
   /** limit on the size of the name of the group **/
-  private static final int GROUP_NAME_LIMIT = 128;
+  private static final int GROUP_NAME_LIMIT = 
+    conf.getInt("mapreduce.job.counters.group.name.max", 128);
   /** limit on the size of the counter name **/
-  private static final int COUNTER_NAME_LIMIT = 64;
+  private static final int COUNTER_NAME_LIMIT = 
+    conf.getInt("mapreduce.job.counters.counter.name.max", 64);
   
-  private static final JobConf conf = new JobConf();
   /** limit on counters **/
   public static int MAX_COUNTER_LIMIT = 
-    conf.getInt("mapreduce.job.counters.limit", 120);
+    conf.getInt("mapreduce.job.counters.limit", // deprecated in 0.23
+        conf.getInt("mapreduce.job.counters.max", 120));
 
   /** the max groups allowed **/
-  static final int MAX_GROUP_LIMIT = 50;
+  public static final int MAX_GROUP_LIMIT = 
+    conf.getInt("mapreduce.job.counters.groups.max", 50);
   
   /** the number of current counters**/
   private int numCounters = 0;

Modified: hadoop/common/branches/branch-1/src/test/org/apache/hadoop/mapred/TestUserDefinedCounters.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/test/org/apache/hadoop/mapred/TestUserDefinedCounters.java?rev=1300798&r1=1300797&r2=1300798&view=diff
==============================================================================
--- hadoop/common/branches/branch-1/src/test/org/apache/hadoop/mapred/TestUserDefinedCounters.java (original)
+++ hadoop/common/branches/branch-1/src/test/org/apache/hadoop/mapred/TestUserDefinedCounters.java Thu Mar 15 00:32:15 2012
@@ -130,7 +130,7 @@ public class TestUserDefinedCounters ext
     assertEquals(4,
         runningJob.getCounters().getGroup("StringCounter")
         .getCounter("MapRecords"));
-    assertTrue(counters.getGroupNames().size() <= 51);
+    assertTrue(counters.getGroupNames().size() <= Counters.MAX_GROUP_LIMIT);
     int i = 0;
     while (counters.size() < Counters.MAX_COUNTER_LIMIT) {
       counters.incrCounter("IncrCounter", "limit " + i, 2);