Thanks! It would indeed be nice to have this as framework that makes test
fun and easy to write ;-)

Looking at SavepointMigrationTestBase, I see that the cluster is eventually
stopped in teardown, but I don't find where the individual job is
terminated after the expected results are in? Also, CheckingRestoringSource
will run until cancelled, is there a way where the source can trigger
pipeline termination?

Thanks,
Thomas


On Wed, Feb 7, 2018 at 7:56 AM, Aljoscha Krettek <aljos...@apache.org>
wrote:

> There is StatefulJobSavepointMigrationITCase, which executes a proper
> unbounded pipeline on a locally started cluster and "listens" for some
> criteria via accumulators before cancelling the job and shutting down the
> cluster. The communication with the cluster is quite custom here, but I
> would really like to have a framework that comes with Flink that allows
> writing such tests. Somewhat similar to how PAssert works in Beam.
>
> Best,
> Aljoscha
>
> > On 7. Feb 2018, at 04:34, Thomas Weise <t...@apache.org> wrote:
> >
> > Hi Ken,
> >
> > Thanks! I would expect more folks to run into this and hence surprised to
> > not find this in LocalStreamEnvironment. Is there a reason for that?
> >
> > In the specific case, we have an unbounded source (Kinesis), but for
> > testing we would like to make it bounded. Hence the earlier question
> > whether it is possible to terminate a topology with a final watermark or
> > different means from within the source, similar to how a bounded source
> in
> > Beam would behave.
> >
> > Thanks,
> > Thomas
> >
> >
> >
> >
> >
> >
> > On Tue, Feb 6, 2018 at 5:16 PM, Ken Krugler <kkrugler_li...@transpac.com
> >
> > wrote:
> >
> >> Hi Thomas,
> >>
> >> Normally the streaming job will terminate when the sources are exhausted
> >> and all records have been processed.
> >>
> >> I assume you have some unbounded source(s), thus this doesn’t work for
> >> your case.
> >>
> >> We’d run into a similar situation with a streaming job that has
> iterations.
> >>
> >> Our solution was your option #1 below, where we created a modified
> version
> >> of LocalStreamEnvironment <https://raw.githubusercontent.com/
> >> ScaleUnlimited/flink-crawler/master/src/main/java/org/
> >> apache/flink/streaming/api/environment/LocalStreamEnvironmentWithAsyn
> >> cExecution.java> that supports async execution.
> >>
> >> — Ken
> >>
> >>
> >>> On Feb 6, 2018, at 4:21 PM, Thomas Weise <t...@apache.org> wrote:
> >>>
> >>> Hi,
> >>>
> >>> I'm looking for an example of an integration test that runs a streaming
> >> job
> >>> and terminates when the expected result becomes available. I could
> think
> >> of
> >>> 2 approaches:
> >>>
> >>> 1. Modified version of LocalStreamEnvironment that executes the job
> >>> asynchronously and polls for the result or
> >>>
> >>> 2. Source that emits a final watermark that causes the topology to
> >>> terminate after the watermark has traversed the topology. Is that
> >> possible
> >>> with Flink?
> >>>
> >>> But probably this is a rather common testing need that's already
> solved?!
> >>>
> >>> Thanks,
> >>> Thomas
> >>
> >> --------------------------
> >> Ken Krugler
> >> http://www.scaleunlimited.com
> >> custom big data solutions & training
> >> Hadoop, Cascading, Cassandra & Solr
> >>
> >>
>
>

Reply via email to