Search in sources :

Example 31 with Task

use of org.apache.tez.dag.app.dag.Task in project tez by apache.

the class TestEdge method testCompositeEventHandling.

@SuppressWarnings({ "rawtypes" })
@Test(timeout = 5000)
public void testCompositeEventHandling() throws TezException {
    EventHandler eventHandler = mock(EventHandler.class);
    EdgeProperty edgeProp = EdgeProperty.create(DataMovementType.SCATTER_GATHER, DataSourceType.PERSISTED, SchedulingType.SEQUENTIAL, mock(OutputDescriptor.class), mock(InputDescriptor.class));
    Edge edge = new Edge(edgeProp, eventHandler, new TezConfiguration());
    TezVertexID srcVertexID = createVertexID(1);
    TezVertexID destVertexID = createVertexID(2);
    LinkedHashMap<TezTaskID, Task> srcTasks = mockTasks(srcVertexID, 1);
    LinkedHashMap<TezTaskID, Task> destTasks = mockTasks(destVertexID, 5);
    TezTaskID srcTaskID = srcTasks.keySet().iterator().next();
    Vertex srcVertex = mockVertex("src", srcVertexID, srcTasks);
    Vertex destVertex = mockVertex("dest", destVertexID, destTasks);
    edge.setSourceVertex(srcVertex);
    edge.setDestinationVertex(destVertex);
    edge.initialize();
    // Task0, Attempt 0
    TezTaskAttemptID srcTAID = createTAIDForTest(srcTaskID, 2);
    EventMetaData srcMeta = new EventMetaData(EventProducerConsumerType.OUTPUT, "consumerVertex", "producerVertex", srcTAID);
    // Verification via a CompositeEvent
    CompositeDataMovementEvent cdmEvent = CompositeDataMovementEvent.create(0, destTasks.size(), ByteBuffer.wrap("bytes".getBytes()));
    // AttemptNum
    cdmEvent.setVersion(2);
    TezEvent tezEvent = new TezEvent(cdmEvent, srcMeta);
    // Event setup to look like it would after the Vertex is done with it.
    edge.sendTezEventToDestinationTasks(tezEvent);
    verifyEvents(srcTAID, destTasks);
    // Same Verification via regular DataMovementEvents
    // Reset the mock
    resetTaskMocks(destTasks.values());
    for (int i = 0; i < destTasks.size(); i++) {
        DataMovementEvent dmEvent = DataMovementEvent.create(i, ByteBuffer.wrap("bytes".getBytes()));
        dmEvent.setVersion(2);
        tezEvent = new TezEvent(dmEvent, srcMeta);
        edge.sendTezEventToDestinationTasks(tezEvent);
    }
    verifyEvents(srcTAID, destTasks);
}
Also used : InputDescriptor(org.apache.tez.dag.api.InputDescriptor) Vertex(org.apache.tez.dag.app.dag.Vertex) Task(org.apache.tez.dag.app.dag.Task) EventHandler(org.apache.hadoop.yarn.event.EventHandler) DataMovementEvent(org.apache.tez.runtime.api.events.DataMovementEvent) CompositeDataMovementEvent(org.apache.tez.runtime.api.events.CompositeDataMovementEvent) TezTaskID(org.apache.tez.dag.records.TezTaskID) OutputDescriptor(org.apache.tez.dag.api.OutputDescriptor) CompositeDataMovementEvent(org.apache.tez.runtime.api.events.CompositeDataMovementEvent) EdgeProperty(org.apache.tez.dag.api.EdgeProperty) TezEvent(org.apache.tez.runtime.api.impl.TezEvent) TezVertexID(org.apache.tez.dag.records.TezVertexID) EventMetaData(org.apache.tez.runtime.api.impl.EventMetaData) TezConfiguration(org.apache.tez.dag.api.TezConfiguration) TezTaskAttemptID(org.apache.tez.dag.records.TezTaskAttemptID) Test(org.junit.Test) EdgeManagerForTest(org.apache.tez.test.EdgeManagerForTest)

Example 32 with Task

use of org.apache.tez.dag.app.dag.Task in project tez by apache.

the class TestEdge method mockVertex.

private Vertex mockVertex(String name, TezVertexID vertexID, LinkedHashMap<TezTaskID, Task> tasks) {
    Vertex vertex = mock(Vertex.class);
    doReturn(vertexID).when(vertex).getVertexId();
    doReturn(name).when(vertex).getName();
    doReturn(tasks).when(vertex).getTasks();
    doReturn(tasks.size()).when(vertex).getTotalTasks();
    for (Entry<TezTaskID, Task> entry : tasks.entrySet()) {
        doReturn(entry.getValue()).when(vertex).getTask(eq(entry.getKey()));
        doReturn(entry.getValue()).when(vertex).getTask(eq(entry.getKey().getId()));
    }
    return vertex;
}
Also used : Vertex(org.apache.tez.dag.app.dag.Vertex) Task(org.apache.tez.dag.app.dag.Task) TezTaskID(org.apache.tez.dag.records.TezTaskID)

Example 33 with Task

use of org.apache.tez.dag.app.dag.Task in project tez by apache.

the class TestEdge method resetTaskMocks.

private void resetTaskMocks(Collection<Task> tasks) {
    for (Task task : tasks) {
        TezTaskID taskID = task.getTaskId();
        reset(task);
        doReturn(taskID).when(task).getTaskId();
    }
}
Also used : Task(org.apache.tez.dag.app.dag.Task) TezTaskID(org.apache.tez.dag.records.TezTaskID)

Example 34 with Task

use of org.apache.tez.dag.app.dag.Task in project tez by apache.

the class TestAMWebController method createMockTask.

private Task createMockTask(String taskIDStr, TaskState status, float progress) {
    Task mockTask = mock(Task.class);
    doReturn(TezTaskID.fromString(taskIDStr)).when(mockTask).getTaskId();
    doReturn(status).when(mockTask).getState();
    doReturn(progress).when(mockTask).getProgress();
    TezCounters counters = new TezCounters();
    counters.addGroup("g1", "g1");
    counters.addGroup("g2", "g2");
    counters.addGroup("g3", "g3");
    counters.addGroup("g4", "g4");
    counters.findCounter("g1", "g1_c1").setValue(101);
    counters.findCounter("g1", "g1_c2").setValue(102);
    counters.findCounter("g2", "g2_c3").setValue(103);
    counters.findCounter("g2", "g2_c4").setValue(104);
    counters.findCounter("g3", "g3_c5").setValue(105);
    counters.findCounter("g3", "g3_c6").setValue(106);
    doReturn(counters).when(mockTask).getCounters();
    return mockTask;
}
Also used : Task(org.apache.tez.dag.app.dag.Task) TezCounters(org.apache.tez.common.counters.TezCounters)

Example 35 with Task

use of org.apache.tez.dag.app.dag.Task in project tez by apache.

the class TestAMWebController method createMockTasks.

private List<Task> createMockTasks() {
    Task mockTask1 = createMockTask("task_1441301219877_0109_1_00_000000", TaskState.RUNNING, 0.33f);
    Task mockTask2 = createMockTask("task_1441301219877_0109_1_00_000001", TaskState.SUCCEEDED, 1.0f);
    Task mockTask3 = createMockTask("task_1441301219877_0109_1_00_000002", TaskState.SUCCEEDED, .8f);
    Task mockTask4 = createMockTask("task_1441301219877_0109_1_00_000003", TaskState.SUCCEEDED, .8f);
    List<Task> tasks = Arrays.asList(mockTask1, mockTask2, mockTask3, mockTask4);
    return tasks;
}
Also used : Task(org.apache.tez.dag.app.dag.Task)

Aggregations

Task (org.apache.tez.dag.app.dag.Task)41 TezTaskID (org.apache.tez.dag.records.TezTaskID)15 Test (org.junit.Test)14 TaskEventScheduleTask (org.apache.tez.dag.app.dag.event.TaskEventScheduleTask)11 TezEvent (org.apache.tez.runtime.api.impl.TezEvent)11 StateChangeNotifierForTest (org.apache.tez.dag.app.dag.TestStateChangeNotifier.StateChangeNotifierForTest)9 TezTaskAttemptID (org.apache.tez.dag.records.TezTaskAttemptID)8 TaskAttempt (org.apache.tez.dag.app.dag.TaskAttempt)7 Vertex (org.apache.tez.dag.app.dag.Vertex)7 VertexEventRouteEvent (org.apache.tez.dag.app.dag.event.VertexEventRouteEvent)7 EventMetaData (org.apache.tez.runtime.api.impl.EventMetaData)7 Map (java.util.Map)6 TaskLocationHint (org.apache.tez.dag.api.TaskLocationHint)6 ByteString (com.google.protobuf.ByteString)5 TezUncheckedException (org.apache.tez.dag.api.TezUncheckedException)5 VertexLocationHint (org.apache.tez.dag.api.VertexLocationHint)5 TezVertexID (org.apache.tez.dag.records.TezVertexID)5 DataMovementEvent (org.apache.tez.runtime.api.events.DataMovementEvent)5 EdgeManagerForTest (org.apache.tez.test.EdgeManagerForTest)5 HashMap (java.util.HashMap)4