You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by to...@apache.org on 2011/05/03 01:19:55 UTC

svn commit: r1098853 - in /hadoop/mapreduce/trunk: CHANGES.txt src/contrib/fairscheduler/src/test/org/apache/hadoop/mapred/TestFairSchedulerSystem.java src/java/org/apache/hadoop/mapred/JobInProgress.java

Author: todd
Date: Mon May  2 23:19:55 2011
New Revision: 1098853

URL: http://svn.apache.org/viewvc?rev=1098853&view=rev
Log:
MAPREDUCE-2457. Job submission should inject group.name on the JobTracker. Contributed by Alejandro Abdelnur.

Modified:
    hadoop/mapreduce/trunk/CHANGES.txt
    hadoop/mapreduce/trunk/src/contrib/fairscheduler/src/test/org/apache/hadoop/mapred/TestFairSchedulerSystem.java
    hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java

Modified: hadoop/mapreduce/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/trunk/CHANGES.txt?rev=1098853&r1=1098852&r2=1098853&view=diff
==============================================================================
--- hadoop/mapreduce/trunk/CHANGES.txt (original)
+++ hadoop/mapreduce/trunk/CHANGES.txt Mon May  2 23:19:55 2011
@@ -689,6 +689,9 @@ Release 0.22.0 - Unreleased
     MAPREDUCE-2445. Fix TestMiniMRWithDFSWithDistinctUsers to be a valid test.
     (todd)
 
+    MAPREDUCE-2457. Job submission should inject group.name on the JobTracker
+    (Alejandro Abdelnur via todd)
+
 Release 0.21.1 - Unreleased
 
   NEW FEATURES

Modified: hadoop/mapreduce/trunk/src/contrib/fairscheduler/src/test/org/apache/hadoop/mapred/TestFairSchedulerSystem.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/trunk/src/contrib/fairscheduler/src/test/org/apache/hadoop/mapred/TestFairSchedulerSystem.java?rev=1098853&r1=1098852&r2=1098853&view=diff
==============================================================================
--- hadoop/mapreduce/trunk/src/contrib/fairscheduler/src/test/org/apache/hadoop/mapred/TestFairSchedulerSystem.java (original)
+++ hadoop/mapreduce/trunk/src/contrib/fairscheduler/src/test/org/apache/hadoop/mapred/TestFairSchedulerSystem.java Mon May  2 23:19:55 2011
@@ -18,6 +18,7 @@
 package org.apache.hadoop.mapred;
 
 import org.apache.hadoop.mapreduce.server.jobtracker.JTConfig;
+import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.mapreduce.SleepJob;
 import org.apache.hadoop.util.ToolRunner;
 import org.apache.hadoop.conf.Configuration;
@@ -68,6 +69,7 @@ public class TestFairSchedulerSystem {
     conf.set("mapred.fairscheduler.preemption.interval", "1");
     conf.set("mapred.fairscheduler.preemption", "true");
     conf.set("mapred.fairscheduler.eventlog.enabled", "true");
+    conf.set("mapred.fairscheduler.poolnameproperty", "group.name");
     conf.set(JTConfig.JT_PERSIST_JOBSTATUS, "false");
     mr = new MiniMRCluster(taskTrackers, "file:///", 1, null, null, conf);
   }
@@ -166,6 +168,10 @@ public class TestFairSchedulerSystem {
     String contents = sb.toString();
     assertTrue("Bad contents for fair scheduler servlet: " + contents,
       contents.contains("Fair Scheduler Administration"));
+
+    String userGroups[] = UserGroupInformation.getCurrentUser().getGroupNames();
+    String primaryGroup = ">" + userGroups[0] + "<";
+    assertTrue(contents.contains(primaryGroup));
   }
 
   private void checkTaskGraphServlet(JobID job) throws Exception {

Modified: hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java
URL: http://svn.apache.org/viewvc/hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java?rev=1098853&r1=1098852&r2=1098853&view=diff
==============================================================================
--- hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java (original)
+++ hadoop/mapreduce/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java Mon May  2 23:19:55 2011
@@ -433,6 +433,13 @@ public class JobInProgress {
             conf.getUser(), jobId.toString(), desc);
         throw new IOException(desc);
       }
+
+      String userGroups[] = ugi.getGroupNames();
+      String primaryGroup = (userGroups.length > 0) ? userGroups[0] : null;
+      if (primaryGroup != null) {
+        conf.set("group.name", primaryGroup);
+      }
+
       this.priority = conf.getJobPriority();
       this.profile = new JobProfile(conf.getUser(), this.jobId, jobFile
           .toString(), url, conf.getJobName(), conf.getQueueName());