This goes in the right direction; have a look at org.apache.flink.api.common.io.FinalizeOnMaster, which an OutputFormat can implement to run something on the Master after all subtasks have been closed.

On 08/06/2020 17:25, Andrey Zagrebin wrote:
Hi Mark,

I do not know how you output the results in your pipeline.
If you use DataSet#output(OutputFormat<T> outputFormat), you could try to extend the format with a custom close method which should be called once the task of the sink batch operator is done in the task manager.
I also cc Aljoscha, maybe, he has more ideas.

Best,
Andrey

On Sun, Jun 7, 2020 at 1:35 PM Mark Davis <moda...@protonmail.com <mailto:moda...@protonmail.com>> wrote:

    Hi Jeff,

    Unfortunately this is not good enough for me.
    My clients are very volatile, they start a batch and can go away
    any moment without waiting for it to finish. Think of an elastic
    web application or an AWS Lambda.

    I hopped to find something what could be deployed to the cluster
    together with the batch code. Maybe a hook to a job manager or
    similar. I do not plan to run anything heavy there, just some
    formal cleanups.
    Is there something like this?

    Thank you!

      Mark

    ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
    On Saturday, June 6, 2020 4:29 PM, Jeff Zhang <zjf...@gmail.com
    <mailto:zjf...@gmail.com>> wrote:

    It would run in the client side where ExecutionEnvironment is
    created.

    Mark Davis <moda...@protonmail.com
    <mailto:moda...@protonmail.com>> 于2020年6月6日周六 下午8:14写道:

        Hi Jeff,

        Thank you very much! That is exactly what I need.

        Where the listener code will run in the cluster
        deployment(YARN, k8s)?
        Will it be sent over the network?

        Thank you!

          Mark

        ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
        On Friday, June 5, 2020 6:13 PM, Jeff Zhang <zjf...@gmail.com
        <mailto:zjf...@gmail.com>> wrote:

        You can try JobListener which you can register to
        ExecutionEnvironment.

        
https://github.com/apache/flink/blob/master/flink-core/src/main/java/org/apache/flink/core/execution/JobListener.java


        Mark Davis <moda...@protonmail.com
        <mailto:moda...@protonmail.com>> 于2020年6月6日周六
        上午12:00写道:

            Hi there,

            I am running a Batch job with several outputs.
            Is there a way to run some code(e.g. release a
            distributed lock) after all outputs are finished?

            Currently I do this in a try-finally block around
            ExecutionEnvironment.execute() call, but I have to
            switch to the detached execution mode - in this mode the
            finally block is never run.

            Thank you!

              Mark



-- Best Regards

        Jeff Zhang



-- Best Regards

    Jeff Zhang


Reply via email to