org.apache.flink.runtime.testtasks.NoOpInvokable Java Examples
The following examples show how to use
org.apache.flink.runtime.testtasks.NoOpInvokable.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: SchedulingITCase.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@Nonnull private JobGraph createJobGraph(long delay, int parallelism) throws IOException { SlotSharingGroup slotSharingGroup = new SlotSharingGroup(); final JobVertex source = new JobVertex("source"); source.setInvokableClass(OneTimeFailingInvokable.class); source.setParallelism(parallelism); source.setSlotSharingGroup(slotSharingGroup); final JobVertex sink = new JobVertex("sink"); sink.setInvokableClass(NoOpInvokable.class); sink.setParallelism(parallelism); sink.setSlotSharingGroup(slotSharingGroup); sink.connectNewDataSetAsInput(source, DistributionPattern.POINTWISE, ResultPartitionType.PIPELINED); JobGraph jobGraph = new JobGraph(source, sink); jobGraph.setScheduleMode(ScheduleMode.EAGER); ExecutionConfig executionConfig = new ExecutionConfig(); executionConfig.setRestartStrategy(RestartStrategies.fixedDelayRestart(1, delay)); jobGraph.setExecutionConfig(executionConfig); return jobGraph; }
Example #2
Source File: SchedulingITCase.java From flink with Apache License 2.0 | 6 votes |
@Nonnull private JobGraph createJobGraph(long delay, int parallelism) throws IOException { SlotSharingGroup slotSharingGroup = new SlotSharingGroup(); final JobVertex source = new JobVertex("source"); source.setInvokableClass(OneTimeFailingInvokable.class); source.setParallelism(parallelism); source.setSlotSharingGroup(slotSharingGroup); final JobVertex sink = new JobVertex("sink"); sink.setInvokableClass(NoOpInvokable.class); sink.setParallelism(parallelism); sink.setSlotSharingGroup(slotSharingGroup); sink.connectNewDataSetAsInput(source, DistributionPattern.POINTWISE, ResultPartitionType.PIPELINED); JobGraph jobGraph = new JobGraph(source, sink); jobGraph.setScheduleMode(ScheduleMode.EAGER); ExecutionConfig executionConfig = new ExecutionConfig(); executionConfig.setRestartStrategy(RestartStrategies.fixedDelayRestart(1, delay)); jobGraph.setExecutionConfig(executionConfig); return jobGraph; }
Example #3
Source File: FinalizeOnMasterTest.java From flink with Apache License 2.0 | 6 votes |
@Test public void testFinalizeIsNotCalledUponFailure() throws Exception { final JobID jid = new JobID(); final JobVertex vertex = spy(new JobVertex("test vertex 1")); vertex.setInvokableClass(NoOpInvokable.class); vertex.setParallelism(1); final ExecutionGraph eg = createSimpleTestGraph(jid, vertex); eg.start(ComponentMainThreadExecutorServiceAdapter.forMainThread()); eg.scheduleForExecution(); assertEquals(JobStatus.RUNNING, eg.getState()); ExecutionGraphTestUtils.switchAllVerticesToRunning(eg); // fail the execution final Execution exec = eg.getJobVertex(vertex.getID()).getTaskVertices()[0].getCurrentExecutionAttempt(); exec.fail(new Exception("test")); assertEquals(JobStatus.FAILED, eg.waitUntilTerminal()); verify(vertex, times(0)).finalizeOnMaster(any(ClassLoader.class)); assertEquals(0, eg.getRegisteredExecutions().size()); }
Example #4
Source File: FinalizeOnMasterTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@Test public void testFinalizeIsNotCalledUponFailure() throws Exception { final JobID jid = new JobID(); final JobVertex vertex = spy(new JobVertex("test vertex 1")); vertex.setInvokableClass(NoOpInvokable.class); vertex.setParallelism(1); final ExecutionGraph eg = createSimpleTestGraph(jid, vertex); eg.start(TestingComponentMainThreadExecutorServiceAdapter.forMainThread()); eg.scheduleForExecution(); assertEquals(JobStatus.RUNNING, eg.getState()); ExecutionGraphTestUtils.switchAllVerticesToRunning(eg); // fail the execution final Execution exec = eg.getJobVertex(vertex.getID()).getTaskVertices()[0].getCurrentExecutionAttempt(); exec.fail(new Exception("test")); assertEquals(JobStatus.FAILED, eg.waitUntilTerminal()); verify(vertex, times(0)).finalizeOnMaster(any(ClassLoader.class)); assertEquals(0, eg.getRegisteredExecutions().size()); }
Example #5
Source File: JobManagerRunnerTest.java From flink with Apache License 2.0 | 6 votes |
@BeforeClass public static void setupClass() { libraryCacheManager = new BlobLibraryCacheManager( FailingPermanentBlobService.INSTANCE, FlinkUserCodeClassLoaders.ResolveOrder.CHILD_FIRST, new String[]{}); defaultJobMasterServiceFactory = new TestingJobMasterServiceFactory(); final JobVertex jobVertex = new JobVertex("Test vertex"); jobVertex.setInvokableClass(NoOpInvokable.class); jobGraph = new JobGraph(jobVertex); archivedExecutionGraph = new ArchivedExecutionGraphBuilder() .setJobID(jobGraph.getJobID()) .setState(JobStatus.FINISHED) .build(); }
Example #6
Source File: PipelinedFailoverRegionBuildingTest.java From flink with Apache License 2.0 | 6 votes |
/** * Tests that validates that a graph with single unconnected vertices works correctly. * * <pre> * (v1) * * (v2) * * (v3) * * ... * </pre> */ @Test public void testIndividualVertices() throws Exception { final JobVertex source1 = new JobVertex("source1"); source1.setInvokableClass(NoOpInvokable.class); source1.setParallelism(2); final JobVertex source2 = new JobVertex("source2"); source2.setInvokableClass(NoOpInvokable.class); source2.setParallelism(2); final JobGraph jobGraph = new JobGraph("test job", source1, source2); final ExecutionGraph eg = createExecutionGraph(jobGraph); RestartPipelinedRegionStrategy failoverStrategy = (RestartPipelinedRegionStrategy) eg.getFailoverStrategy(); FailoverRegion sourceRegion11 = failoverStrategy.getFailoverRegion(eg.getJobVertex(source1.getID()).getTaskVertices()[0]); FailoverRegion sourceRegion12 = failoverStrategy.getFailoverRegion(eg.getJobVertex(source1.getID()).getTaskVertices()[1]); FailoverRegion targetRegion21 = failoverStrategy.getFailoverRegion(eg.getJobVertex(source2.getID()).getTaskVertices()[0]); FailoverRegion targetRegion22 = failoverStrategy.getFailoverRegion(eg.getJobVertex(source2.getID()).getTaskVertices()[1]); assertTrue(sourceRegion11 != sourceRegion12); assertTrue(sourceRegion12 != targetRegion21); assertTrue(targetRegion21 != targetRegion22); }
Example #7
Source File: ExecutionGraphSuspendTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
private static ExecutionGraph createExecutionGraph(TaskManagerGateway gateway, int parallelism) throws Exception { final JobID jobId = new JobID(); final JobVertex vertex = new JobVertex("vertex"); vertex.setInvokableClass(NoOpInvokable.class); vertex.setParallelism(parallelism); final SlotProvider slotProvider = new SimpleSlotProvider(jobId, parallelism, gateway); ExecutionGraph simpleTestGraph = ExecutionGraphTestUtils.createSimpleTestGraph( jobId, slotProvider, new FixedDelayRestartStrategy(0, 0), vertex); simpleTestGraph.start(TestingComponentMainThreadExecutorServiceAdapter.forMainThread()); return simpleTestGraph; }
Example #8
Source File: ExecutionGraphSuspendTest.java From flink with Apache License 2.0 | 6 votes |
private static ExecutionGraph createExecutionGraph(TaskManagerGateway gateway, int parallelism) throws Exception { final JobID jobId = new JobID(); final JobVertex vertex = new JobVertex("vertex"); vertex.setInvokableClass(NoOpInvokable.class); vertex.setParallelism(parallelism); final SlotProvider slotProvider = new SimpleSlotProvider(jobId, parallelism, gateway); ExecutionGraph simpleTestGraph = ExecutionGraphTestUtils.createSimpleTestGraph( jobId, slotProvider, new FixedDelayRestartStrategy(0, 0), vertex); simpleTestGraph.start(ComponentMainThreadExecutorServiceAdapter.forMainThread()); return simpleTestGraph; }
Example #9
Source File: JobManagerRunnerTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@BeforeClass public static void setupClass() { libraryCacheManager = new BlobLibraryCacheManager( FailingPermanentBlobService.INSTANCE, FlinkUserCodeClassLoaders.ResolveOrder.CHILD_FIRST, new String[]{}); defaultJobMasterServiceFactory = new TestingJobMasterServiceFactory(); final JobVertex jobVertex = new JobVertex("Test vertex"); jobVertex.setInvokableClass(NoOpInvokable.class); jobGraph = new JobGraph(jobVertex); archivedExecutionGraph = new ArchivedExecutionGraphBuilder() .setJobID(jobGraph.getJobID()) .setState(JobStatus.FINISHED) .build(); }
Example #10
Source File: MiniClusterITCase.java From flink with Apache License 2.0 | 5 votes |
private static JobGraph getSimpleJob(int parallelism) throws IOException { final JobVertex task = new JobVertex("Test task"); task.setParallelism(parallelism); task.setMaxParallelism(parallelism); task.setInvokableClass(NoOpInvokable.class); final JobGraph jg = new JobGraph(new JobID(), "Test Job", task); jg.setScheduleMode(ScheduleMode.EAGER); final ExecutionConfig executionConfig = new ExecutionConfig(); executionConfig.setRestartStrategy(RestartStrategies.fixedDelayRestart(Integer.MAX_VALUE, 1000)); jg.setExecutionConfig(executionConfig); return jg; }
Example #11
Source File: ExecutionGraphSchedulingTest.java From flink with Apache License 2.0 | 5 votes |
/** * Tests that an ongoing scheduling operation does not fail the {@link ExecutionGraph} * if it gets concurrently cancelled. */ @Test public void testSchedulingOperationCancellationWhenCancel() throws Exception { final JobVertex jobVertex = new JobVertex("NoOp JobVertex"); jobVertex.setInvokableClass(NoOpInvokable.class); jobVertex.setParallelism(2); final JobGraph jobGraph = new JobGraph(jobVertex); jobGraph.setScheduleMode(ScheduleMode.EAGER); jobGraph.setAllowQueuedScheduling(true); final CompletableFuture<LogicalSlot> slotFuture1 = new CompletableFuture<>(); final CompletableFuture<LogicalSlot> slotFuture2 = new CompletableFuture<>(); final ProgrammedSlotProvider slotProvider = new ProgrammedSlotProvider(2); slotProvider.addSlots(jobVertex.getID(), new CompletableFuture[]{slotFuture1, slotFuture2}); final ExecutionGraph executionGraph = createExecutionGraph(jobGraph, slotProvider); executionGraph.start(ComponentMainThreadExecutorServiceAdapter.forMainThread()); executionGraph.scheduleForExecution(); final TestingLogicalSlot slot = createTestingSlot(); final CompletableFuture<?> releaseFuture = slot.getReleaseFuture(); slotFuture1.complete(slot); // cancel should change the state of all executions to CANCELLED executionGraph.cancel(); // complete the now CANCELLED execution --> this should cause a failure slotFuture2.complete(new TestingLogicalSlotBuilder().createTestingLogicalSlot()); Thread.sleep(1L); // release the first slot to finish the cancellation releaseFuture.complete(null); // NOTE: This test will only occasionally fail without the fix since there is // a race between the releaseFuture and the slotFuture2 assertThat(executionGraph.getTerminationFuture().get(), is(JobStatus.CANCELED)); }
Example #12
Source File: ConcurrentFailoverStrategyExecutionGraphTest.java From flink with Apache License 2.0 | 5 votes |
private ExecutionGraph createSampleGraph( JobID jid, Factory failoverStrategy, RestartStrategy restartStrategy, SlotProvider slotProvider, int parallelism) throws Exception { final JobInformation jobInformation = new DummyJobInformation( jid, "test job"); // build a simple execution graph with on job vertex, parallelism 2 final Time timeout = Time.seconds(10L); final ExecutionGraph graph = new ExecutionGraph( jobInformation, TestingUtils.defaultExecutor(), TestingUtils.defaultExecutor(), timeout, restartStrategy, failoverStrategy, slotProvider, getClass().getClassLoader(), VoidBlobWriter.getInstance(), timeout); JobVertex jv = new JobVertex("test vertex"); jv.setInvokableClass(NoOpInvokable.class); jv.setParallelism(parallelism); JobGraph jg = new JobGraph(jid, "testjob", jv); graph.attachJobGraph(jg.getVerticesSortedTopologicallyFromSources()); return graph; }
Example #13
Source File: PipelinedFailoverRegionBuildingTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testDiamondWithMixedPipelinedAndBlockingExchanges() throws Exception { final JobVertex vertex1 = new JobVertex("vertex1"); vertex1.setInvokableClass(NoOpInvokable.class); vertex1.setParallelism(8); final JobVertex vertex2 = new JobVertex("vertex2"); vertex2.setInvokableClass(NoOpInvokable.class); vertex2.setParallelism(8); final JobVertex vertex3 = new JobVertex("vertex3"); vertex3.setInvokableClass(NoOpInvokable.class); vertex3.setParallelism(8); final JobVertex vertex4 = new JobVertex("vertex4"); vertex4.setInvokableClass(NoOpInvokable.class); vertex4.setParallelism(8); vertex2.connectNewDataSetAsInput(vertex1, DistributionPattern.ALL_TO_ALL, ResultPartitionType.BLOCKING); vertex3.connectNewDataSetAsInput(vertex1, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); vertex4.connectNewDataSetAsInput(vertex2, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); vertex4.connectNewDataSetAsInput(vertex3, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); final JobGraph jobGraph = new JobGraph("test job", vertex1, vertex2, vertex3, vertex4); final ExecutionGraph eg = createExecutionGraph(jobGraph); RestartPipelinedRegionStrategy failoverStrategy = (RestartPipelinedRegionStrategy) eg.getFailoverStrategy(); Iterator<ExecutionVertex> evs = eg.getAllExecutionVertices().iterator(); FailoverRegion preRegion = failoverStrategy.getFailoverRegion(evs.next()); while (evs.hasNext()) { FailoverRegion region = failoverStrategy.getFailoverRegion(evs.next()); assertTrue(preRegion == region); } }
Example #14
Source File: AdaptedRestartPipelinedRegionStrategyNGConcurrentFailoverTest.java From flink with Apache License 2.0 | 5 votes |
/** * Creating a sample ExecutionGraph for testing with topology as below. * <pre> * (v11) -+-> (v21) * x * (v12) -+-> (v22) * * ^ * | * (blocking) * </pre> * 4 regions. Each consists of one individual execution vertex. */ private ExecutionGraph createExecutionGraph() throws Exception { final JobVertex v1 = new JobVertex("vertex1"); v1.setInvokableClass(NoOpInvokable.class); v1.setParallelism(DEFAULT_PARALLELISM); final JobVertex v2 = new JobVertex("vertex2"); v2.setInvokableClass(NoOpInvokable.class); v2.setParallelism(DEFAULT_PARALLELISM); v2.connectNewDataSetAsInput(v1, DistributionPattern.ALL_TO_ALL, ResultPartitionType.BLOCKING); final JobGraph jg = new JobGraph(TEST_JOB_ID, "testjob", v1, v2); final SimpleSlotProvider slotProvider = new SimpleSlotProvider(TEST_JOB_ID, DEFAULT_PARALLELISM); final PartitionTracker partitionTracker = new PartitionTrackerImpl( jg.getJobID(), NettyShuffleMaster.INSTANCE, ignored -> Optional.empty()); final ExecutionGraph graph = new ExecutionGraphTestUtils.TestingExecutionGraphBuilder(jg) .setRestartStrategy(manuallyTriggeredRestartStrategy) .setFailoverStrategyFactory(TestAdaptedRestartPipelinedRegionStrategyNG::new) .setSlotProvider(slotProvider) .setPartitionTracker(partitionTracker) .build(); graph.start(componentMainThreadExecutor); return graph; }
Example #15
Source File: FinalizeOnMasterTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testFinalizeIsCalledUponSuccess() throws Exception { final JobID jid = new JobID(); final JobVertex vertex1 = spy(new JobVertex("test vertex 1")); vertex1.setInvokableClass(NoOpInvokable.class); vertex1.setParallelism(3); final JobVertex vertex2 = spy(new JobVertex("test vertex 2")); vertex2.setInvokableClass(NoOpInvokable.class); vertex2.setParallelism(2); final ExecutionGraph eg = createSimpleTestGraph(jid, vertex1, vertex2); eg.start(ComponentMainThreadExecutorServiceAdapter.forMainThread()); eg.scheduleForExecution(); assertEquals(JobStatus.RUNNING, eg.getState()); ExecutionGraphTestUtils.switchAllVerticesToRunning(eg); // move all vertices to finished state ExecutionGraphTestUtils.finishAllVertices(eg); assertEquals(JobStatus.FINISHED, eg.waitUntilTerminal()); verify(vertex1, times(1)).finalizeOnMaster(any(ClassLoader.class)); verify(vertex2, times(1)).finalizeOnMaster(any(ClassLoader.class)); assertEquals(0, eg.getRegisteredExecutions().size()); }
Example #16
Source File: ExecutionTest.java From flink with Apache License 2.0 | 5 votes |
@Nonnull private JobVertex createNoOpJobVertex() { final JobVertex jobVertex = new JobVertex("Test vertex", new JobVertexID()); jobVertex.setInvokableClass(NoOpInvokable.class); return jobVertex; }
Example #17
Source File: ExecutionGraphRestartTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void failGlobalIfExecutionIsStillRunning_failingAnExecutionTwice_ShouldTriggerOnlyOneFailover() throws Exception { JobVertex sender = ExecutionGraphTestUtils.createJobVertex("Task1", 1, NoOpInvokable.class); JobVertex receiver = ExecutionGraphTestUtils.createJobVertex("Task2", 1, NoOpInvokable.class); JobGraph jobGraph = new JobGraph("Pointwise job", sender, receiver); try (SlotPool slotPool = createSlotPoolImpl()) { ExecutionGraph eg = TestingExecutionGraphBuilder.newBuilder() .setRestartStrategy(new TestRestartStrategy(1, false)) .setJobGraph(jobGraph) .setNumberOfTasks(2) .buildAndScheduleForExecution(slotPool); Iterator<ExecutionVertex> executionVertices = eg.getAllExecutionVertices().iterator(); Execution finishedExecution = executionVertices.next().getCurrentExecutionAttempt(); Execution failedExecution = executionVertices.next().getCurrentExecutionAttempt(); finishedExecution.markFinished(); failedExecution.fail(new Exception("Test Exception")); failedExecution.completeCancelling(); assertEquals(JobStatus.RUNNING, eg.getState()); // At this point all resources have been assigned for (ExecutionVertex vertex : eg.getAllExecutionVertices()) { assertNotNull("No assigned resource (test instability).", vertex.getCurrentAssignedResource()); vertex.getCurrentExecutionAttempt().switchToRunning(); } // fail global with old finished execution, this should not affect the execution eg.failGlobalIfExecutionIsStillRunning(new Exception("This should have no effect"), finishedExecution.getAttemptId()); assertThat(eg.getState(), is(JobStatus.RUNNING)); // the state of the finished execution should have not changed since it is terminal assertThat(finishedExecution.getState(), is(ExecutionState.FINISHED)); } }
Example #18
Source File: PipelinedFailoverRegionBuildingTest.java From flink with Apache License 2.0 | 5 votes |
/** * <pre> * (a1) -+-> (b1) -+-> (c1) * X * (a2) -+-> (b2) -+-> (c2) * X * (a3) -+-> (b3) -+-> (c3) * * ^ ^ * | | * (pipelined) (blocking) * * </pre> */ @Test public void testTwoComponentsViaBlockingExchange() throws Exception { final JobVertex vertex1 = new JobVertex("vertex1"); vertex1.setInvokableClass(NoOpInvokable.class); vertex1.setParallelism(3); final JobVertex vertex2 = new JobVertex("vertex2"); vertex2.setInvokableClass(NoOpInvokable.class); vertex2.setParallelism(2); final JobVertex vertex3 = new JobVertex("vertex3"); vertex3.setInvokableClass(NoOpInvokable.class); vertex3.setParallelism(2); vertex2.connectNewDataSetAsInput(vertex1, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); vertex3.connectNewDataSetAsInput(vertex2, DistributionPattern.POINTWISE, ResultPartitionType.BLOCKING); final JobGraph jobGraph = new JobGraph("test job", vertex1, vertex2, vertex3); final ExecutionGraph eg = createExecutionGraph(jobGraph); RestartPipelinedRegionStrategy failoverStrategy = (RestartPipelinedRegionStrategy) eg.getFailoverStrategy(); FailoverRegion region1 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex1.getID()).getTaskVertices()[1]); FailoverRegion region2 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex2.getID()).getTaskVertices()[0]); FailoverRegion region31 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex3.getID()).getTaskVertices()[0]); FailoverRegion region32 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex3.getID()).getTaskVertices()[1]); assertTrue(region1 == region2); assertTrue(region2 != region31); assertTrue(region32 != region31); }
Example #19
Source File: DispatcherTest.java From flink with Apache License 2.0 | 5 votes |
/** * Tests that we can submit a job to the Dispatcher which then spawns a * new JobManagerRunner. */ @Test public void testJobSubmissionWithPartialResourceConfigured() throws Exception { dispatcher = createAndStartDispatcher(heartbeatServices, haServices, new ExpectedJobIdJobManagerRunnerFactory(TEST_JOB_ID, createdJobManagerRunnerLatch)); CompletableFuture<UUID> leaderFuture = dispatcherLeaderElectionService.isLeader(UUID.randomUUID()); // wait for the leader to be elected leaderFuture.get(); DispatcherGateway dispatcherGateway = dispatcher.getSelfGateway(DispatcherGateway.class); ResourceSpec resourceSpec = ResourceSpec.newBuilder().setCpuCores(2).build(); final JobVertex firstVertex = new JobVertex("firstVertex"); firstVertex.setInvokableClass(NoOpInvokable.class); firstVertex.setResources(resourceSpec, resourceSpec); final JobVertex secondVertex = new JobVertex("secondVertex"); secondVertex.setInvokableClass(NoOpInvokable.class); JobGraph jobGraphWithTwoVertices = new JobGraph(TEST_JOB_ID, "twoVerticesJob", firstVertex, secondVertex); jobGraphWithTwoVertices.setAllowQueuedScheduling(true); CompletableFuture<Acknowledge> acknowledgeFuture = dispatcherGateway.submitJob(jobGraphWithTwoVertices, TIMEOUT); try { acknowledgeFuture.get(); fail("job submission should have failed"); } catch (ExecutionException e) { assertTrue(ExceptionUtils.findThrowable(e, JobSubmissionException.class).isPresent()); } }
Example #20
Source File: JobMasterTest.java From flink with Apache License 2.0 | 5 votes |
private JobGraph producerConsumerJobGraph() { final JobVertex producer = new JobVertex("Producer"); producer.setInvokableClass(NoOpInvokable.class); final JobVertex consumer = new JobVertex("Consumer"); consumer.setInvokableClass(NoOpInvokable.class); consumer.connectNewDataSetAsInput(producer, DistributionPattern.POINTWISE, ResultPartitionType.BLOCKING); final JobGraph jobGraph = new JobGraph(producer, consumer); jobGraph.setAllowQueuedScheduling(true); return jobGraph; }
Example #21
Source File: PipelinedFailoverRegionBuildingTest.java From flink with Apache License 2.0 | 5 votes |
/** * This test checks that are strictly co-located vertices are in the same failover region, * even through they are connected via a blocking pattern. * This is currently an assumption / limitation of the scheduler. */ @Test public void testBlockingAllToAllTopologyWithCoLocation() throws Exception { final JobVertex source = new JobVertex("source"); source.setInvokableClass(NoOpInvokable.class); source.setParallelism(10); final JobVertex target = new JobVertex("target"); target.setInvokableClass(NoOpInvokable.class); target.setParallelism(13); target.connectNewDataSetAsInput(source, DistributionPattern.ALL_TO_ALL, ResultPartitionType.BLOCKING); final SlotSharingGroup sharingGroup = new SlotSharingGroup(); source.setSlotSharingGroup(sharingGroup); target.setSlotSharingGroup(sharingGroup); source.setStrictlyCoLocatedWith(target); final JobGraph jobGraph = new JobGraph("test job", source, target); final ExecutionGraph eg = createExecutionGraph(jobGraph); RestartPipelinedRegionStrategy failoverStrategy = (RestartPipelinedRegionStrategy) eg.getFailoverStrategy(); FailoverRegion region1 = failoverStrategy.getFailoverRegion(eg.getJobVertex(source.getID()).getTaskVertices()[0]); FailoverRegion region2 = failoverStrategy.getFailoverRegion(eg.getJobVertex(target.getID()).getTaskVertices()[0]); // we use 'assertTrue' here rather than 'assertEquals' because we want to test // for referential equality, to be on the safe side assertTrue(region1 == region2); }
Example #22
Source File: JobSubmissionFailsITCase.java From flink with Apache License 2.0 | 5 votes |
@Test public void testExceptionInInitializeOnMaster() throws Exception { final JobVertex failingJobVertex = new FailingJobVertex("Failing job vertex"); failingJobVertex.setInvokableClass(NoOpInvokable.class); final JobGraph failingJobGraph = new JobGraph("Failing testing job", failingJobVertex); runJobSubmissionTest(failingJobGraph, e -> ExceptionUtils.findThrowable( e, candidate -> "Test exception.".equals(candidate.getMessage())) .isPresent()); }
Example #23
Source File: BlobsCleanupITCase.java From flink with Apache License 2.0 | 5 votes |
@Nonnull private JobGraph createJobGraph(TestCase testCase, int numTasks) { JobVertex source = new JobVertex("Source"); if (testCase == TestCase.JOB_FAILS || testCase == TestCase.JOB_IS_CANCELLED) { source.setInvokableClass(FailingBlockingInvokable.class); } else { source.setInvokableClass(NoOpInvokable.class); } source.setParallelism(numTasks); return new JobGraph("BlobCleanupTest", source); }
Example #24
Source File: ExecutionTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Nonnull private JobVertex createNoOpJobVertex() { final JobVertex jobVertex = new JobVertex("Test vertex", new JobVertexID()); jobVertex.setInvokableClass(NoOpInvokable.class); return jobVertex; }
Example #25
Source File: PipelinedFailoverRegionBuildingTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
/** * This test checks that are strictly co-located vertices are in the same failover region, * even through they are connected via a blocking pattern. * This is currently an assumption / limitation of the scheduler. */ @Test public void testBlockingAllToAllTopologyWithCoLocation() throws Exception { final JobVertex source = new JobVertex("source"); source.setInvokableClass(NoOpInvokable.class); source.setParallelism(10); final JobVertex target = new JobVertex("target"); target.setInvokableClass(NoOpInvokable.class); target.setParallelism(13); target.connectNewDataSetAsInput(source, DistributionPattern.ALL_TO_ALL, ResultPartitionType.BLOCKING); final SlotSharingGroup sharingGroup = new SlotSharingGroup(); source.setSlotSharingGroup(sharingGroup); target.setSlotSharingGroup(sharingGroup); source.setStrictlyCoLocatedWith(target); final JobGraph jobGraph = new JobGraph("test job", source, target); final ExecutionGraph eg = createExecutionGraph(jobGraph); RestartPipelinedRegionStrategy failoverStrategy = (RestartPipelinedRegionStrategy) eg.getFailoverStrategy(); FailoverRegion region1 = failoverStrategy.getFailoverRegion(eg.getJobVertex(source.getID()).getTaskVertices()[0]); FailoverRegion region2 = failoverStrategy.getFailoverRegion(eg.getJobVertex(target.getID()).getTaskVertices()[0]); // we use 'assertTrue' here rather than 'assertEquals' because we want to test // for referential equality, to be on the safe side assertTrue(region1 == region2); }
Example #26
Source File: PipelinedFailoverRegionBuildingTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Test public void testDiamondWithMixedPipelinedAndBlockingExchanges() throws Exception { final JobVertex vertex1 = new JobVertex("vertex1"); vertex1.setInvokableClass(NoOpInvokable.class); vertex1.setParallelism(8); final JobVertex vertex2 = new JobVertex("vertex2"); vertex2.setInvokableClass(NoOpInvokable.class); vertex2.setParallelism(8); final JobVertex vertex3 = new JobVertex("vertex3"); vertex3.setInvokableClass(NoOpInvokable.class); vertex3.setParallelism(8); final JobVertex vertex4 = new JobVertex("vertex4"); vertex4.setInvokableClass(NoOpInvokable.class); vertex4.setParallelism(8); vertex2.connectNewDataSetAsInput(vertex1, DistributionPattern.ALL_TO_ALL, ResultPartitionType.BLOCKING); vertex3.connectNewDataSetAsInput(vertex1, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); vertex4.connectNewDataSetAsInput(vertex2, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); vertex4.connectNewDataSetAsInput(vertex3, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); final JobGraph jobGraph = new JobGraph("test job", vertex1, vertex2, vertex3, vertex4); final ExecutionGraph eg = createExecutionGraph(jobGraph); RestartPipelinedRegionStrategy failoverStrategy = (RestartPipelinedRegionStrategy) eg.getFailoverStrategy(); Iterator<ExecutionVertex> evs = eg.getAllExecutionVertices().iterator(); FailoverRegion preRegion = failoverStrategy.getFailoverRegion(evs.next()); while (evs.hasNext()) { FailoverRegion region = failoverStrategy.getFailoverRegion(evs.next()); assertTrue(preRegion == region); } }
Example #27
Source File: PipelinedFailoverRegionBuildingTest.java From flink with Apache License 2.0 | 5 votes |
/** * Tests that validates that a single pipelined component via a sequence of all-to-all * connections works correctly. * * <pre> * (a1) -+-> (b1) -+-> (c1) * X X * (a2) -+-> (b2) -+-> (c2) * X X * (a3) -+-> (b3) -+-> (c3) * * ... * </pre> */ @Test public void testOneComponentViaTwoExchanges() throws Exception { final JobVertex vertex1 = new JobVertex("vertex1"); vertex1.setInvokableClass(NoOpInvokable.class); vertex1.setParallelism(3); final JobVertex vertex2 = new JobVertex("vertex2"); vertex2.setInvokableClass(NoOpInvokable.class); vertex2.setParallelism(5); final JobVertex vertex3 = new JobVertex("vertex3"); vertex3.setInvokableClass(NoOpInvokable.class); vertex3.setParallelism(2); vertex2.connectNewDataSetAsInput(vertex1, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); vertex3.connectNewDataSetAsInput(vertex2, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); final JobGraph jobGraph = new JobGraph("test job", vertex1, vertex2, vertex3); final ExecutionGraph eg = createExecutionGraph(jobGraph); RestartPipelinedRegionStrategy failoverStrategy = (RestartPipelinedRegionStrategy) eg.getFailoverStrategy(); FailoverRegion region1 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex1.getID()).getTaskVertices()[1]); FailoverRegion region2 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex2.getID()).getTaskVertices()[4]); FailoverRegion region3 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex3.getID()).getTaskVertices()[0]); assertTrue(region1 == region2); assertTrue(region2 == region3); }
Example #28
Source File: PipelinedFailoverRegionBuildingTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
/** * <pre> * (a1) -+-> (b1) -+-> (c1) * X X * (a2) -+-> (b2) -+-> (c2) * X X * (a3) -+-> (b3) -+-> (c3) * * ^ ^ * | | * (pipelined) (blocking) * </pre> */ @Test public void testTwoComponentsViaBlockingExchange2() throws Exception { final JobVertex vertex1 = new JobVertex("vertex1"); vertex1.setInvokableClass(NoOpInvokable.class); vertex1.setParallelism(3); final JobVertex vertex2 = new JobVertex("vertex2"); vertex2.setInvokableClass(NoOpInvokable.class); vertex2.setParallelism(2); final JobVertex vertex3 = new JobVertex("vertex3"); vertex3.setInvokableClass(NoOpInvokable.class); vertex3.setParallelism(2); vertex2.connectNewDataSetAsInput(vertex1, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); vertex3.connectNewDataSetAsInput(vertex2, DistributionPattern.ALL_TO_ALL, ResultPartitionType.BLOCKING); final JobGraph jobGraph = new JobGraph("test job", vertex1, vertex2, vertex3); final ExecutionGraph eg = createExecutionGraph(jobGraph); RestartPipelinedRegionStrategy failoverStrategy = (RestartPipelinedRegionStrategy) eg.getFailoverStrategy(); FailoverRegion region1 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex1.getID()).getTaskVertices()[1]); FailoverRegion region2 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex2.getID()).getTaskVertices()[0]); FailoverRegion region31 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex3.getID()).getTaskVertices()[0]); FailoverRegion region32 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex3.getID()).getTaskVertices()[1]); assertTrue(region1 == region2); assertTrue(region2 != region31); assertTrue(region32 != region31); }
Example #29
Source File: PipelinedFailoverRegionBuildingTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
/** * <pre> * (a1) -+-> (b1) -+-> (c1) * X * (a2) -+-> (b2) -+-> (c2) * X * (a3) -+-> (b3) -+-> (c3) * * ^ ^ * | | * (pipelined) (blocking) * * </pre> */ @Test public void testTwoComponentsViaBlockingExchange() throws Exception { final JobVertex vertex1 = new JobVertex("vertex1"); vertex1.setInvokableClass(NoOpInvokable.class); vertex1.setParallelism(3); final JobVertex vertex2 = new JobVertex("vertex2"); vertex2.setInvokableClass(NoOpInvokable.class); vertex2.setParallelism(2); final JobVertex vertex3 = new JobVertex("vertex3"); vertex3.setInvokableClass(NoOpInvokable.class); vertex3.setParallelism(2); vertex2.connectNewDataSetAsInput(vertex1, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); vertex3.connectNewDataSetAsInput(vertex2, DistributionPattern.POINTWISE, ResultPartitionType.BLOCKING); final JobGraph jobGraph = new JobGraph("test job", vertex1, vertex2, vertex3); final ExecutionGraph eg = createExecutionGraph(jobGraph); RestartPipelinedRegionStrategy failoverStrategy = (RestartPipelinedRegionStrategy) eg.getFailoverStrategy(); FailoverRegion region1 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex1.getID()).getTaskVertices()[1]); FailoverRegion region2 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex2.getID()).getTaskVertices()[0]); FailoverRegion region31 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex3.getID()).getTaskVertices()[0]); FailoverRegion region32 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex3.getID()).getTaskVertices()[1]); assertTrue(region1 == region2); assertTrue(region2 != region31); assertTrue(region32 != region31); }
Example #30
Source File: PipelinedFailoverRegionBuildingTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
/** * Tests that validates that a single pipelined component via a sequence of all-to-all * connections works correctly. * * <pre> * (a1) -+-> (b1) -+-> (c1) * X X * (a2) -+-> (b2) -+-> (c2) * X X * (a3) -+-> (b3) -+-> (c3) * * ... * </pre> */ @Test public void testOneComponentViaTwoExchanges() throws Exception { final JobVertex vertex1 = new JobVertex("vertex1"); vertex1.setInvokableClass(NoOpInvokable.class); vertex1.setParallelism(3); final JobVertex vertex2 = new JobVertex("vertex2"); vertex2.setInvokableClass(NoOpInvokable.class); vertex2.setParallelism(5); final JobVertex vertex3 = new JobVertex("vertex3"); vertex3.setInvokableClass(NoOpInvokable.class); vertex3.setParallelism(2); vertex2.connectNewDataSetAsInput(vertex1, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); vertex3.connectNewDataSetAsInput(vertex2, DistributionPattern.ALL_TO_ALL, ResultPartitionType.PIPELINED); final JobGraph jobGraph = new JobGraph("test job", vertex1, vertex2, vertex3); final ExecutionGraph eg = createExecutionGraph(jobGraph); RestartPipelinedRegionStrategy failoverStrategy = (RestartPipelinedRegionStrategy) eg.getFailoverStrategy(); FailoverRegion region1 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex1.getID()).getTaskVertices()[1]); FailoverRegion region2 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex2.getID()).getTaskVertices()[4]); FailoverRegion region3 = failoverStrategy.getFailoverRegion(eg.getJobVertex(vertex3.getID()).getTaskVertices()[0]); assertTrue(region1 == region2); assertTrue(region2 == region3); }