@Override public boolean canCommit(TaskAttemptId taskAttemptID) { readLock.lock(); boolean canCommit = false; try { if (commitAttempt != null) { canCommit = taskAttemptID.equals(commitAttempt); LOG.info("Result of canCommit for " + taskAttemptID + ":" + canCommit); } } finally { readLock.unlock(); } return canCommit; }
@Override public boolean canCommit(TaskAttemptId taskAttemptID) { readLock.lock(); boolean canCommit = false; try { if (commitAttempt != null) { canCommit = taskAttemptID.equals(commitAttempt); LOG.info("Result of canCommit for " + taskAttemptID + ":" + canCommit); } } finally { readLock.unlock(); } return canCommit; }
@Override public boolean canCommit(TaskAttemptId taskAttemptID) { readLock.lock(); boolean canCommit = false; try { if (commitAttempt != null) { canCommit = taskAttemptID.equals(commitAttempt); LOG.info("Result of canCommit for " + taskAttemptID + ":" + canCommit); } } finally { readLock.unlock(); } return canCommit; }
if (other.taskAttemptID != null) return false; } else if (!taskAttemptID.equals(other.taskAttemptID)) return false;
if (other.taskAttemptID != null) return false; } else if (!taskAttemptID.equals(other.taskAttemptID)) return false;
if (other.taskAttemptID != null) return false; } else if (!taskAttemptID.equals(other.taskAttemptID)) return false; return true;
private long getFinishTime(TaskAttemptId taId) { if (taId == null) { return clock.getTime(); } long finishTime = 0; for (TaskAttempt at : attempts.values()) { //select the max finish time of all attempts if (at.getID().equals(taId)) { return at.getFinishTime(); } } return finishTime; }
private long getFinishTime(TaskAttemptId taId) { if (taId == null) { return clock.getTime(); } long finishTime = 0; for (TaskAttempt at : attempts.values()) { //select the max finish time of all attempts if (at.getID().equals(taId)) { return at.getFinishTime(); } } return finishTime; }
private long getFinishTime(TaskAttemptId taId) { if (taId == null) { return clock.getTime(); } long finishTime = 0; for (TaskAttempt at : attempts.values()) { //select the max finish time of all attempts if (at.getID().equals(taId)) { return at.getFinishTime(); } } return finishTime; }
TaskAttemptId taskAttemptId = castEvent.getTaskAttemptID(); task.failedAttempts.add(taskAttemptId); if (taskAttemptId.equals(task.commitAttempt)) { task.commitAttempt = null;
TaskAttemptId taskAttemptId = castEvent.getTaskAttemptID(); task.failedAttempts.add(taskAttemptId); if (taskAttemptId.equals(task.commitAttempt)) { task.commitAttempt = null;
@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); }
@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); }
@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); }
TaskAttemptId taskAttemptId = castEvent.getTaskAttemptID(); task.failedAttempts.add(taskAttemptId); if (taskAttemptId.equals(task.commitAttempt)) { task.commitAttempt = null;
attemptId = castEvent.getTaskAttemptID(); if (task.getInternalState() == TaskStateInternal.SUCCEEDED && !attemptId.equals(task.successfulAttempt)) {
private void checkAssignments(ContainerRequestEvent[] requests, List<TaskAttemptContainerAssignedEvent> assignments, boolean checkHostMatch) { Assert.assertNotNull("Container not assigned", assignments); Assert.assertEquals("Assigned count not correct", requests.length, assignments.size()); // check for uniqueness of containerIDs Set<ContainerId> containerIds = new HashSet<ContainerId>(); for (TaskAttemptContainerAssignedEvent assigned : assignments) { containerIds.add(assigned.getContainer().getId()); } Assert.assertEquals("Assigned containers must be different", assignments .size(), containerIds.size()); // check for all assignment for (ContainerRequestEvent req : requests) { TaskAttemptContainerAssignedEvent assigned = null; for (TaskAttemptContainerAssignedEvent ass : assignments) { if (ass.getTaskAttemptID().equals(req.getAttemptID())) { assigned = ass; break; } } checkAssignment(req, assigned, checkHostMatch); } }
attemptId = castEvent.getTaskAttemptID(); if (task.getInternalState() == TaskStateInternal.SUCCEEDED && !attemptId.equals(task.successfulAttempt)) {
attemptId = castEvent.getTaskAttemptID(); if (task.getInternalState() == TaskStateInternal.SUCCEEDED && !attemptId.equals(task.successfulAttempt)) {