@Override public void heartbeat(TezHeartbeatRequest request) { List<TezEvent> inEvents = request.getEvents(); for (TezEvent tezEvent : ListUtils.emptyIfNull(inEvents)) { EventType eventType = tezEvent.getEventType(); try { switch (eventType) { case TASK_ATTEMPT_COMPLETED_EVENT: sendOrQueueEvent(ReaderEvent.doneEvent()); break; case TASK_ATTEMPT_FAILED_EVENT: TaskAttemptFailedEvent taskFailedEvent = (TaskAttemptFailedEvent) tezEvent.getEvent(); sendOrQueueEvent(ReaderEvent.errorEvent(taskFailedEvent.getDiagnostics())); break; case TASK_STATUS_UPDATE_EVENT: // If we want to handle counters break; default: LOG.warn("Unhandled event type " + eventType); break; } } catch (Exception err) { LOG.error("Error during heartbeat responder:", err); } } }
private void handleCompositeDataMovementEvent(TezEvent tezEvent) throws AMUserCodeException { CompositeDataMovementEvent compEvent = (CompositeDataMovementEvent) tezEvent.getEvent(); EventMetaData srcInfo = tezEvent.getSourceInfo(); for (DataMovementEvent dmEvent : compEvent.getEvents()) { TezEvent newEvent = new TezEvent(dmEvent, srcInfo, tezEvent.getEventReceivedTime()); sendTezEventToDestinationTasks(newEvent); } }
evtBuilder.setCompositeDataMovementEvent( ProtoConverters.convertCompositeDataMovementEventToProto( (CompositeDataMovementEvent) event.getEvent())); } else if (event.getEventType().equals(EventType.DATA_MOVEMENT_EVENT)) { evtBuilder.setDataMovementEvent( ProtoConverters.convertDataMovementEventToProto( (DataMovementEvent) event.getEvent())); } else if (event.getEventType().equals(EventType.ROOT_INPUT_INITIALIZER_EVENT)) { evtBuilder.setInputInitializerEvent(ProtoConverters .convertRootInputInitializerEventToProto((InputInitializerEvent) event.getEvent())); } else if (event.getEventType().equals(EventType.VERTEX_MANAGER_EVENT)) { evtBuilder.setVmEvent(ProtoConverters .convertVertexManagerEventToProto((VertexManagerEvent)event.getEvent())); } else if (event.getEventType().equals(EventType.ROOT_INPUT_DATA_INFORMATION_EVENT)) { evtBuilder.setRootInputDataInformationEvent( ProtoConverters.convertRootInputDataInformationEventToProto( (InputDataInformationEvent) event.getEvent())); } else { throw new IOException("Unsupported TezEvent type:" + event.getEventType());
@Override public void heartbeat(TezHeartbeatRequest request) { List<TezEvent> inEvents = request.getEvents(); for (TezEvent tezEvent : ListUtils.emptyIfNull(inEvents)) { EventType eventType = tezEvent.getEventType(); try { switch (eventType) { case TASK_ATTEMPT_COMPLETED_EVENT: sendOrQueueEvent(ReaderEvent.doneEvent()); break; case TASK_ATTEMPT_FAILED_EVENT: TaskAttemptFailedEvent taskFailedEvent = (TaskAttemptFailedEvent) tezEvent.getEvent(); sendOrQueueEvent(ReaderEvent.errorEvent(taskFailedEvent.getDiagnostics())); break; case TASK_STATUS_UPDATE_EVENT: // If we want to handle counters break; default: LOG.warn("Unhandled event type " + eventType); break; } } catch (Exception err) { LOG.error("Error during heartbeat responder:", err); } } }
case COMPOSITE_DATA_MOVEMENT_EVENT: CompositeDataMovementEvent compEvent = (CompositeDataMovementEvent) tezEvent.getEvent(); CompositeEventRouteMetadata routeMeta = edgeManagerOnDemand .routeCompositeDataMovementEventToDestination(srcTaskIndex, taskIndex); case INPUT_FAILED_EVENT: InputFailedEvent ifEvent = (InputFailedEvent) tezEvent.getEvent(); EventRouteMetadata routeMeta; int numEventsDone; case DATA_MOVEMENT_EVENT: DataMovementEvent dmEvent = (DataMovementEvent) tezEvent.getEvent(); EventRouteMetadata routeMeta; int numEventsDone; "Fail to maybeAddTezEventForDestinationTask, event:" + tezEvent.getEvent() + ", sourceInfo:" + tezEvent.getSourceInfo() + ", destinationInfo:" + tezEvent.getDestinationInfo() + ", " + getEdgeInfo(), e);
toForwardEvents.add((InputInitializerEvent) tezEvent.getEvent());
Preconditions.checkState(edgeManager != null, "Edge Manager must be initialized by this time"); Event event = tezEvent.getEvent();
case ROOT_INPUT_DATA_INFORMATION_EVENT: InputDataInformationEvent riEvent = (InputDataInformationEvent) tezEvent.getEvent(); if (riEvent.getTargetIndex() == taskIndex) { events.add(tezEvent);
toForwardEvents.add((InputInitializerEvent) tezEvent.getEvent());
try { if (isDataMovementEvent) { DataMovementEvent dmEvent = (DataMovementEvent) tezEvent.getEvent(); edgeManager.routeDataMovementEventToDestination(dmEvent, srcTaskIndex, dmEvent.getSourceIndex(), "Fail to sendTezEventToDestinationTasks, event:" + tezEvent.getEvent() + ", sourceInfo:" + tezEvent.getSourceInfo() + ", destinationInfo:" + tezEvent.getDestinationInfo() + ", " + getEdgeInfo(), e);
TezEvent tezEvent = outputFailedEvent.getInputFailedEvent(); TezTaskAttemptID failedDestTaId = tezEvent.getSourceInfo().getTaskAttemptID(); InputReadErrorEvent readErrorEvent = (InputReadErrorEvent)tezEvent.getEvent(); int failedInputIndexOnDestTa = readErrorEvent.getIndex(); if (readErrorEvent.getVersion() != attempt.getID().getId()) {
e.getDestinationInfo().getEdgeVertexName()); if (input != null) { ((InputFrameworkInterface)input).handleEvents(Collections.singletonList(e.getEvent())); } else { throw new TezUncheckedException("Unhandled event for invalid target: " e.getDestinationInfo().getEdgeVertexName()); if (output != null) { ((OutputFrameworkInterface)output).handleEvents(Collections.singletonList(e.getEvent())); } else { throw new TezUncheckedException("Unhandled event for invalid target: " processor.handleEvents(Collections.singletonList(e.getEvent())); break; case SYSTEM:
switch (tezEvent.getEventType()) { case INPUT_READ_ERROR_EVENT: InputReadErrorEvent event = (InputReadErrorEvent) tezEvent.getEvent(); TezTaskAttemptID destAttemptId = tezEvent.getSourceInfo() .getTaskAttemptID(); throw new AMUserCodeException(Source.EdgeManager, "Fail to sendTezEventToSourceTasks, " + "TezEvent:" + tezEvent.getEvent() + "sourceInfo:" + tezEvent.getSourceInfo() + "destinationInfo:" + tezEvent.getDestinationInfo()
(TaskStatusUpdateEvent) tezEvent.getEvent()); } else if (eventType == EventType.TASK_ATTEMPT_COMPLETED_EVENT || eventType == EventType.TASK_ATTEMPT_FAILED_EVENT TaskAttemptFailedEvent taskFailedEvent = (TaskAttemptFailedEvent) e.getEvent(); sendEvent( new TaskAttemptEventAttemptFailed(sourceMeta.getTaskAttemptID(), errCause)); } else { // Killed TaskAttemptKilledEvent taskKilledEvent = (TaskAttemptKilledEvent) e.getEvent(); sendEvent( new TaskAttemptEventAttemptKilled(sourceMeta.getTaskAttemptID(),
((CustomProcessorEvent) tezEvent.getEvent()).setVersion( appContext.getApplicationAttemptId().getAttemptId()); ((DataMovementEvent) tezEvent.getEvent()).setVersion(srcTaId.getId()); } else if (tezEvent.getEventType() == EventType.COMPOSITE_DATA_MOVEMENT_EVENT) { ((CompositeDataMovementEvent) tezEvent.getEvent()).setVersion(srcTaId.getId()); } else { ((InputFailedEvent) tezEvent.getEvent()).setVersion(srcTaId.getId()); InputDataInformationEvent riEvent = (InputDataInformationEvent) tezEvent.getEvent(); Task targetTask = getTask(riEvent.getTargetIndex()); targetTask.registerTezEvent(tezEvent); VertexManagerEvent vmEvent = (VertexManagerEvent) tezEvent.getEvent(); Vertex target = getDAG().getVertex(vmEvent.getTargetVertexName()); Preconditions.checkArgument(target != null, case ROOT_INPUT_INITIALIZER_EVENT: InputInitializerEvent riEvent = (InputInitializerEvent) tezEvent.getEvent(); Vertex target = getDAG().getVertex(riEvent.getTargetVertexName()); Preconditions.checkArgument(target != null,