@Override public void setLastEventSent(TezEvent lastEventSent) { writeLock.lock(); try { // TEZ-3066 ideally Heartbeat just happens in FAIL_IN_PROGRESS & KILL_IN_PROGRESS, // add other states here just in case. create TEZ-3068 for a more elegant solution. if (!EnumSet.of(TaskAttemptStateInternal.FAIL_IN_PROGRESS, TaskAttemptStateInternal.KILL_IN_PROGRESS, TaskAttemptStateInternal.FAILED, TaskAttemptStateInternal.KILLED, TaskAttemptStateInternal.SUCCEEDED).contains(getInternalState())) { DataEventDependencyInfo info = new DataEventDependencyInfo( lastEventSent.getEventReceivedTime(), lastEventSent.getSourceInfo().getTaskAttemptID()); // task attempt id may be null for input data information events if (appendNextDataEvent) { appendNextDataEvent = false; lastDataEvents.add(info); } else { // over-write last event - array list makes it quick lastDataEvents.set(lastDataEvents.size() - 1, info); } } } finally { writeLock.unlock(); } } }
tezEvent.getEventType() == EventType.COMPOSITE_DATA_MOVEMENT_EVENT) { if (failedTaskAttemptIDs.contains(tezEvent.getSourceInfo().getTaskAttemptID())) { return; for (EventInfo eventInfo : onDemandRouteEvents) { if (eventInfo.eventEdge == srcEdge && eventInfo.tezEvent.getSourceInfo().getTaskAttemptID().equals( tezEvent.getSourceInfo().getTaskAttemptID()) && (eventInfo.tezEvent.getEventType() == EventType.DATA_MOVEMENT_EVENT || eventInfo.tezEvent failedTaskAttemptIDs.add(tezEvent.getSourceInfo().getTaskAttemptID());
while (eventIterator.hasNext()) { TezEvent tezEvent = eventIterator.next(); int taskIndex = tezEvent.getSourceInfo().getTaskAttemptID().getTaskID().getId(); int taskAttemptIndex = tezEvent.getSourceInfo().getTaskAttemptID().getId(); if (taskIndex == taskId.getId()) {
public static RecoveryProtos.EventMetaDataProto convertEventMetaDataToProto( EventMetaData eventMetaData) { RecoveryProtos.EventMetaDataProto.Builder builder = RecoveryProtos.EventMetaDataProto.newBuilder() .setProducerConsumerType(eventMetaData.getEventGenerator().ordinal()) .setEdgeVertexName(eventMetaData.getEdgeVertexName()) .setTaskVertexName(eventMetaData.getTaskVertexName()); if (eventMetaData.getTaskAttemptID() != null) { builder.setTaskAttemptId(eventMetaData.getTaskAttemptID().toString()); } return builder.build(); }
for (TezEvent tezEvent : tezEvents) { String srcVertexName = tezEvent.getSourceInfo().getTaskVertexName(); int taskIndex = tezEvent.getSourceInfo().getTaskAttemptID().getTaskID().getId(); int taskAttemptIndex = tezEvent.getSourceInfo().getTaskAttemptID().getId();
(TaskAttemptEventOutputFailed) event; TezEvent tezEvent = outputFailedEvent.getInputFailedEvent(); TezTaskAttemptID failedDestTaId = tezEvent.getSourceInfo().getTaskAttemptID(); InputReadErrorEvent readErrorEvent = (InputReadErrorEvent)tezEvent.getEvent(); int failedInputIndexOnDestTa = readErrorEvent.getIndex();
TaskAttemptFailedEvent taskFailedEvent = (TaskAttemptFailedEvent) e.getEvent(); sendEvent( new TaskAttemptEventAttemptFailed(sourceMeta.getTaskAttemptID(), TaskAttemptEventType.TA_FAILED, taskFailedEvent.getTaskFailureType(), "Error: " + taskFailedEvent.getDiagnostics(), TaskAttemptKilledEvent taskKilledEvent = (TaskAttemptKilledEvent) e.getEvent(); sendEvent( new TaskAttemptEventAttemptKilled(sourceMeta.getTaskAttemptID(), "Error: " + taskKilledEvent.getDiagnostics(), errCause)); case TASK_ATTEMPT_COMPLETED_EVENT: sendEvent( new TaskAttemptEvent(sourceMeta.getTaskAttemptID(), TaskAttemptEventType.TA_DONE)); break; default:
InputReadErrorEvent event = (InputReadErrorEvent) tezEvent.getEvent(); TezTaskAttemptID destAttemptId = tezEvent.getSourceInfo() .getTaskAttemptID(); int destTaskIndex = destAttemptId.getTaskID().getId(); int srcTaskIndex;
.newHashMap(); TezTaskAttemptID srcAttemptId = tezEvent.getSourceInfo() .getTaskAttemptID(); int srcTaskIndex = srcAttemptId.getTaskID().getId();
Task targetTask = getTask(destinationMeta.getTaskAttemptID().getTaskID()); targetTask.registerTezEvent(tezEvent); TezTaskAttemptID srcTaId = sourceMeta.getTaskAttemptID(); if (tezEvent.getEventType() == EventType.DATA_MOVEMENT_EVENT) { ((DataMovementEvent) tezEvent.getEvent()).setVersion(srcTaId.getId()); } else { int srcTaskIndex = sourceMeta.getTaskAttemptID().getTaskID().getId(); Vertex edgeVertex = getDAG().getVertex(sourceMeta.getTaskVertexName()); Edge srcEdge = sourceVertices.get(edgeVertex); Preconditions.checkArgument(target != null, "Event sent to unkown vertex: " + vmEvent.getTargetVertexName()); TezTaskAttemptID srcTaId = sourceMeta.getTaskAttemptID(); if (srcTaId.getTaskID().getVertexID().equals(vertexId)) {
TaskAttemptEventOutputFailed destinationEvent = (TaskAttemptEventOutputFailed) castEvent.getCausalEvent(); schedulingCausalTA = destinationEvent.getInputFailedEvent().getSourceInfo().getTaskAttemptID();