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);
}
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;
}
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();
}
}
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;
}
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;
}
Aggregations