MAPREDUCE-2705. Permits parallel multiple task launches. Contributed by Thomas Graves.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1153717 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
2025d4e032
commit
44b7e03114
|
@ -209,6 +209,9 @@ Trunk (unreleased changes)
|
|||
MAPREDUCE-2602. Allow setting of end-of-record delimiter for
|
||||
TextInputFormat for the old API. (Ahmed Radwan via todd)
|
||||
|
||||
MAPREDUCE-2705. Permits parallel multiple task launches.
|
||||
(Thomas Graves via ddas)
|
||||
|
||||
OPTIMIZATIONS
|
||||
|
||||
MAPREDUCE-2026. Make JobTracker.getJobCounters() and
|
||||
|
|
|
@ -1253,7 +1253,7 @@ public class TaskTracker
|
|||
}
|
||||
}
|
||||
|
||||
private void launchTaskForJob(TaskInProgress tip, JobConf jobConf,
|
||||
protected void launchTaskForJob(TaskInProgress tip, JobConf jobConf,
|
||||
UserGroupInformation ugi) throws IOException {
|
||||
synchronized (tip) {
|
||||
tip.setJobConf(jobConf);
|
||||
|
@ -2351,11 +2351,14 @@ public class TaskTracker
|
|||
* All exceptions are handled locally, so that we don't mess up the
|
||||
* task tracker.
|
||||
*/
|
||||
void startNewTask(TaskInProgress tip) {
|
||||
void startNewTask(final TaskInProgress tip) {
|
||||
Thread launchThread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
RunningJob rjob = localizeJob(tip);
|
||||
// Localization is done. Neither rjob.jobConf nor rjob.ugi can be null
|
||||
launchTaskForJob(tip, new JobConf(rjob.jobConf), rjob.ugi);
|
||||
launchTaskForJob(tip, new JobConf(rjob.getJobConf()), rjob.ugi);
|
||||
} catch (Throwable e) {
|
||||
String msg = ("Error initializing " + tip.getTask().getTaskID() +
|
||||
":\n" + StringUtils.stringifyException(e));
|
||||
|
@ -2368,14 +2371,16 @@ public class TaskTracker
|
|||
LOG.info("Error cleaning up " + tip.getTask().getTaskID() + ":\n" +
|
||||
StringUtils.stringifyException(ie2));
|
||||
}
|
||||
|
||||
// Careful!
|
||||
// This might not be an 'Exception' - don't handle 'Error' here!
|
||||
if (e instanceof Error) {
|
||||
throw ((Error) e);
|
||||
LOG.error("TaskLauncher error " +
|
||||
StringUtils.stringifyException(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
launchThread.start();
|
||||
|
||||
}
|
||||
|
||||
void addToMemoryManager(TaskAttemptID attemptId, boolean isMap,
|
||||
JobConf conf) {
|
||||
|
|
Loading…
Reference in New Issue