本文整理汇总了Java中org.apache.hadoop.mapreduce.v2.app.job.event.JobMapTaskRescheduledEvent类的典型用法代码示例。如果您正苦于以下问题:Java JobMapTaskRescheduledEvent类的具体用法?Java JobMapTaskRescheduledEvent怎么用?Java JobMapTaskRescheduledEvent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
JobMapTaskRescheduledEvent类属于org.apache.hadoop.mapreduce.v2.app.job.event包,在下文中一共展示了JobMapTaskRescheduledEvent类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: transition
import org.apache.hadoop.mapreduce.v2.app.job.event.JobMapTaskRescheduledEvent; //导入依赖的package包/类
@Override
public TaskStateInternal transition(TaskImpl task, TaskEvent event) {
TaskTAttemptEvent castEvent = (TaskTAttemptEvent) event;
if (task.getInternalState() == TaskStateInternal.SUCCEEDED &&
!castEvent.getTaskAttemptID().equals(task.successfulAttempt)) {
// don't allow a different task attempt to override a previous
// succeeded state
task.finishedAttempts.add(castEvent.getTaskAttemptID());
task.inProgressAttempts.remove(castEvent.getTaskAttemptID());
return TaskStateInternal.SUCCEEDED;
}
// a successful REDUCE task should not be overridden
//TODO: consider moving it to MapTaskImpl
if (!TaskType.MAP.equals(task.getType())) {
LOG.error("Unexpected event for REDUCE task " + event.getType());
task.internalError(event.getType());
}
// tell the job about the rescheduling
task.eventHandler.handle(
new JobMapTaskRescheduledEvent(task.taskId));
// super.transition is mostly coded for the case where an
// UNcompleted task failed. When a COMPLETED task retroactively
// fails, we have to let AttemptFailedTransition.transition
// believe that there's no redundancy.
unSucceed(task);
// fake increase in Uncomplete attempts for super.transition
task.inProgressAttempts.add(castEvent.getTaskAttemptID());
return super.transition(task, event);
}