MAPREDUCE-5146. application classloader may be used too early to load classes. Contributed by Sangjin Lee.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1470694 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e24a9b83f1
commit
009af54d51
@ -330,6 +330,9 @@ Release 2.0.5-beta - UNRELEASED
|
|||||||
MAPREDUCE-5066. Added a timeout for the job.end.notification.url. (Ivan
|
MAPREDUCE-5066. Added a timeout for the job.end.notification.url. (Ivan
|
||||||
Mitic via acmurthy)
|
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
|
Release 2.0.4-alpha - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
@ -20,10 +20,8 @@
|
|||||||
|
|
||||||
import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.PrintStream;
|
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.security.PrivilegedExceptionAction;
|
import java.security.PrivilegedExceptionAction;
|
||||||
@ -148,6 +146,9 @@ public TaskUmbilicalProtocol run() throws Exception {
|
|||||||
// Add tokens to new user so that it may execute its task correctly.
|
// Add tokens to new user so that it may execute its task correctly.
|
||||||
childUGI.addCredentials(credentials);
|
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
|
// Create a final reference to the task for the doAs block
|
||||||
final Task taskFinal = task;
|
final Task taskFinal = task;
|
||||||
childUGI.doAs(new PrivilegedExceptionAction<Object>() {
|
childUGI.doAs(new PrivilegedExceptionAction<Object>() {
|
||||||
@ -255,9 +256,6 @@ private static JobConf configureTask(Task task, Credentials credentials,
|
|||||||
final JobConf job = new JobConf(MRJobConfig.JOB_CONF_FILE);
|
final JobConf job = new JobConf(MRJobConfig.JOB_CONF_FILE);
|
||||||
job.setCredentials(credentials);
|
job.setCredentials(credentials);
|
||||||
|
|
||||||
// set job classloader if configured
|
|
||||||
MRApps.setJobClassLoader(job);
|
|
||||||
|
|
||||||
String appAttemptIdEnv = System
|
String appAttemptIdEnv = System
|
||||||
.getenv(MRJobConfig.APPLICATION_ATTEMPT_ID_ENV);
|
.getenv(MRJobConfig.APPLICATION_ATTEMPT_ID_ENV);
|
||||||
LOG.debug("APPLICATION_ATTEMPT_ID: " + appAttemptIdEnv);
|
LOG.debug("APPLICATION_ATTEMPT_ID: " + appAttemptIdEnv);
|
||||||
|
Loading…
Reference in New Issue
Block a user