Author: tomwhite Date: Mon Apr 22 20:09:44 2013 New Revision: 1470696 URL: http://svn.apache.org/r1470696 Log: Merge -r 1470693:1470694 from trunk to branch-2. Fixes: MAPREDUCE-5146. application classloader may be used too early to load classes. Contributed by Sangjin Lee.
Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/YarnChild.java Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt?rev=1470696&r1=1470695&r2=1470696&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt Mon Apr 22 20:09:44 2013 @@ -171,6 +171,9 @@ Release 2.0.5-beta - UNRELEASED MAPREDUCE-5066. Added a timeout for the job.end.notification.url. (Ivan Mitic via acmurthy) + MAPREDUCE-5146. application classloader may be used too early to load + classes. (Sangjin Lee via tomwhite) + Release 2.0.4-alpha - UNRELEASED INCOMPATIBLE CHANGES Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/YarnChild.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/YarnChild.java?rev=1470696&r1=1470695&r2=1470696&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/YarnChild.java (original) +++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapred/YarnChild.java Mon Apr 22 20:09:44 2013 @@ -20,10 +20,8 @@ package org.apache.hadoop.mapred; import static java.util.concurrent.TimeUnit.MILLISECONDS; -import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; -import java.io.PrintStream; import java.net.InetSocketAddress; import java.net.URI; import java.security.PrivilegedExceptionAction; @@ -148,6 +146,9 @@ class YarnChild { // Add tokens to new user so that it may execute its task correctly. childUGI.addCredentials(credentials); + // set job classloader if configured before invoking the task + MRApps.setJobClassLoader(job); + // Create a final reference to the task for the doAs block final Task taskFinal = task; childUGI.doAs(new PrivilegedExceptionAction<Object>() { @@ -255,9 +256,6 @@ class YarnChild { final JobConf job = new JobConf(MRJobConfig.JOB_CONF_FILE); job.setCredentials(credentials); - // set job classloader if configured - MRApps.setJobClassLoader(job); - String appAttemptIdEnv = System .getenv(MRJobConfig.APPLICATION_ATTEMPT_ID_ENV); LOG.debug("APPLICATION_ATTEMPT_ID: " + appAttemptIdEnv);