|
@@ -63,6 +63,7 @@ import org.apache.hadoop.mapreduce.lib.reduce.WrappedReducer;
|
|
import org.apache.hadoop.mapreduce.task.ReduceContextImpl;
|
|
import org.apache.hadoop.mapreduce.task.ReduceContextImpl;
|
|
import org.apache.hadoop.yarn.util.ResourceCalculatorProcessTree;
|
|
import org.apache.hadoop.yarn.util.ResourceCalculatorProcessTree;
|
|
import org.apache.hadoop.net.NetUtils;
|
|
import org.apache.hadoop.net.NetUtils;
|
|
|
|
+import org.apache.hadoop.util.ExitUtil;
|
|
import org.apache.hadoop.util.Progress;
|
|
import org.apache.hadoop.util.Progress;
|
|
import org.apache.hadoop.util.Progressable;
|
|
import org.apache.hadoop.util.Progressable;
|
|
import org.apache.hadoop.util.ReflectionUtils;
|
|
import org.apache.hadoop.util.ReflectionUtils;
|
|
@@ -190,6 +191,7 @@ abstract public class Task implements Writable, Configurable {
|
|
protected SecretKey tokenSecret;
|
|
protected SecretKey tokenSecret;
|
|
protected SecretKey shuffleSecret;
|
|
protected SecretKey shuffleSecret;
|
|
protected GcTimeUpdater gcUpdater;
|
|
protected GcTimeUpdater gcUpdater;
|
|
|
|
+ private boolean uberized = false;
|
|
|
|
|
|
////////////////////////////////////////////
|
|
////////////////////////////////////////////
|
|
// Constructors
|
|
// Constructors
|
|
@@ -737,9 +739,6 @@ abstract public class Task implements Writable, Configurable {
|
|
// get current flag value and reset it as well
|
|
// get current flag value and reset it as well
|
|
boolean sendProgress = resetProgressFlag();
|
|
boolean sendProgress = resetProgressFlag();
|
|
|
|
|
|
- boolean uberized = conf.getBoolean("mapreduce.task.uberized",
|
|
|
|
- false);
|
|
|
|
-
|
|
|
|
while (!taskDone.get()) {
|
|
while (!taskDone.get()) {
|
|
synchronized (lock) {
|
|
synchronized (lock) {
|
|
done = false;
|
|
done = false;
|
|
@@ -1116,11 +1115,17 @@ abstract public class Task implements Writable, Configurable {
|
|
public void statusUpdate(TaskUmbilicalProtocol umbilical)
|
|
public void statusUpdate(TaskUmbilicalProtocol umbilical)
|
|
throws IOException {
|
|
throws IOException {
|
|
int retries = MAX_RETRIES;
|
|
int retries = MAX_RETRIES;
|
|
|
|
+
|
|
while (true) {
|
|
while (true) {
|
|
try {
|
|
try {
|
|
if (!umbilical.statusUpdate(getTaskID(), taskStatus)) {
|
|
if (!umbilical.statusUpdate(getTaskID(), taskStatus)) {
|
|
- LOG.warn("Parent died. Exiting "+taskId);
|
|
|
|
- System.exit(66);
|
|
|
|
|
|
+ if (uberized) {
|
|
|
|
+ LOG.warn("Task no longer available: " + taskId);
|
|
|
|
+ break;
|
|
|
|
+ } else {
|
|
|
|
+ LOG.warn("Parent died. Exiting " + taskId);
|
|
|
|
+ ExitUtil.terminate(66);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
taskStatus.clearStatus();
|
|
taskStatus.clearStatus();
|
|
return;
|
|
return;
|
|
@@ -1333,6 +1338,8 @@ abstract public class Task implements Writable, Configurable {
|
|
NetUtils.addStaticResolution(name, resolvedName);
|
|
NetUtils.addStaticResolution(name, resolvedName);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ uberized = conf.getBoolean("mapreduce.task.uberized", false);
|
|
}
|
|
}
|
|
|
|
|
|
public Configuration getConf() {
|
|
public Configuration getConf() {
|