MAPREDUCE-5304. mapreduce.Job killTask/failTask/getTaskCompletionEvents methods have incompatible signature changes. (kkambatl via tucu)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1492360 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c5821cf38b
commit
c9fce677b3
|
@ -540,6 +540,9 @@ Release 2.1.0-beta - UNRELEASED
|
|||
|
||||
MAPREDUCE-5312. TestRMNMInfo is failing. (sandyr via tucu)
|
||||
|
||||
MAPREDUCE-5304. mapreduce.Job killTask/failTask/getTaskCompletionEvents
|
||||
methods have incompatible signature changes. (kkambatl via tucu)
|
||||
|
||||
Release 2.0.5-alpha - 06/06/2013
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -63,7 +63,8 @@ public class TaskCompletionEvent
|
|||
TaskCompletionEvent.Status.valueOf(status.name()), taskTrackerHttp);
|
||||
}
|
||||
|
||||
static TaskCompletionEvent downgrade(
|
||||
@Private
|
||||
public static TaskCompletionEvent downgrade(
|
||||
org.apache.hadoop.mapreduce.TaskCompletionEvent event) {
|
||||
return new TaskCompletionEvent(event.getEventId(),
|
||||
TaskAttemptID.downgrade(event.getTaskAttemptId()),event.idWithinJob(),
|
||||
|
|
|
@ -675,37 +675,57 @@ public class Job extends JobContextImpl implements JobContext {
|
|||
* Get events indicating completion (success/failure) of component tasks.
|
||||
*
|
||||
* @param startFrom index to start fetching events from
|
||||
* @return an array of {@link TaskCompletionEvent}s
|
||||
* @return an array of {@link org.apache.hadoop.mapred.TaskCompletionEvent}s
|
||||
* @throws IOException
|
||||
*/
|
||||
public TaskCompletionEvent[] getTaskCompletionEvents(final int startFrom)
|
||||
throws IOException {
|
||||
public org.apache.hadoop.mapred.TaskCompletionEvent[]
|
||||
getTaskCompletionEvents(final int startFrom) throws IOException {
|
||||
try {
|
||||
return getTaskCompletionEvents(startFrom, 10);
|
||||
TaskCompletionEvent[] events = getTaskCompletionEvents(startFrom, 10);
|
||||
org.apache.hadoop.mapred.TaskCompletionEvent[] retEvents =
|
||||
new org.apache.hadoop.mapred.TaskCompletionEvent[events.length];
|
||||
for (int i = 0; i < events.length; i++) {
|
||||
retEvents[i] = org.apache.hadoop.mapred.TaskCompletionEvent.downgrade
|
||||
(events[i]);
|
||||
}
|
||||
return retEvents;
|
||||
} catch (InterruptedException ie) {
|
||||
throw new IOException(ie);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Kill indicated task attempt.
|
||||
* @param taskId the id of the task to kill.
|
||||
* @param shouldFail if <code>true</code> the task is failed and added
|
||||
* to failed tasks list, otherwise it is just killed,
|
||||
* w/o affecting job failure status.
|
||||
*/
|
||||
@Private
|
||||
public boolean killTask(final TaskAttemptID taskId,
|
||||
final boolean shouldFail) throws IOException {
|
||||
ensureState(JobState.RUNNING);
|
||||
try {
|
||||
return ugi.doAs(new PrivilegedExceptionAction<Boolean>() {
|
||||
public Boolean run() throws IOException, InterruptedException {
|
||||
return cluster.getClient().killTask(taskId, shouldFail);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (InterruptedException ie) {
|
||||
throw new IOException(ie);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Kill indicated task attempt.
|
||||
*
|
||||
* @param taskId the id of the task to be terminated.
|
||||
* @throws IOException
|
||||
*/
|
||||
public boolean killTask(final TaskAttemptID taskId)
|
||||
public void killTask(final TaskAttemptID taskId)
|
||||
throws IOException {
|
||||
ensureState(JobState.RUNNING);
|
||||
try {
|
||||
return ugi.doAs(new PrivilegedExceptionAction<Boolean>() {
|
||||
public Boolean run() throws IOException, InterruptedException {
|
||||
return cluster.getClient().killTask(taskId, false);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (InterruptedException ie) {
|
||||
throw new IOException(ie);
|
||||
}
|
||||
killTask(taskId, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -714,20 +734,9 @@ public class Job extends JobContextImpl implements JobContext {
|
|||
* @param taskId the id of the task to be terminated.
|
||||
* @throws IOException
|
||||
*/
|
||||
public boolean failTask(final TaskAttemptID taskId)
|
||||
public void failTask(final TaskAttemptID taskId)
|
||||
throws IOException {
|
||||
ensureState(JobState.RUNNING);
|
||||
try {
|
||||
return ugi.doAs(new PrivilegedExceptionAction<Boolean>() {
|
||||
@Override
|
||||
public Boolean run() throws IOException, InterruptedException {
|
||||
return cluster.getClient().killTask(taskId, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (InterruptedException ie) {
|
||||
throw new IOException(ie);
|
||||
}
|
||||
killTask(taskId, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -322,7 +322,7 @@ public class CLI extends Configured implements Tool {
|
|||
Job job = cluster.getJob(taskID.getJobID());
|
||||
if (job == null) {
|
||||
System.out.println("Could not find job " + jobid);
|
||||
} else if (job.killTask(taskID)) {
|
||||
} else if (job.killTask(taskID, false)) {
|
||||
System.out.println("Killed task " + taskid);
|
||||
exitCode = 0;
|
||||
} else {
|
||||
|
@ -334,7 +334,7 @@ public class CLI extends Configured implements Tool {
|
|||
Job job = cluster.getJob(taskID.getJobID());
|
||||
if (job == null) {
|
||||
System.out.println("Could not find job " + jobid);
|
||||
} else if(job.failTask(taskID)) {
|
||||
} else if(job.killTask(taskID, true)) {
|
||||
System.out.println("Killed task " + taskID + " by failing it");
|
||||
exitCode = 0;
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue