I've also verified that the problem persist also using a modified version
of the WordCount class.
If you add the code pasted at the end of this email at the end of its main
method you can verify that the listener is called if you run the program
from the IDE, but it's not called if you submit the job using the CLI
client using the command

   - bin/flink run
   
/home/okkam/git/flink/flink-examples/flink-examples-batch/target/WordCount.jar

Maybe this is an expected result but I didn't find any documentation of
this behaviour (neither in the Javadoc or in the flink web site, where I
can't find any documentation about JobListener at all).

[Code to add to main()]
    // emit result
    if (params.has("output")) {
      counts.writeAsCsv(params.get("output"), "\n", " ");
      // execute program
      env.registerJobListener(new JobListener() {

        @Override
        public void onJobSubmitted(JobClient arg0, Throwable arg1) {
          System.out.println("**************** SUBMITTED");
        }

        @Override
        public void onJobExecuted(JobExecutionResult arg0, Throwable arg1) {
          System.out.println("**************** EXECUTED");
        }
      });
      env.execute("WordCount Example");
    } else {
      System.out.println("Printing result to stdout. Use --output to
specify output path.");
      counts.print();
    }

On Fri, Nov 13, 2020 at 4:25 PM Flavio Pompermaier <pomperma...@okkam.it>
wrote:

> see inline
>
> Il ven 13 nov 2020, 14:31 Matthias Pohl <matth...@ververica.com> ha
> scritto:
>
>> Hi Flavio,
>> thanks for sharing this with the Flink community. Could you answer the
>> following questions, please:
>> - What's the code of your Job's main method?
>>
>
> it's actually very simple...the main class creates a batch execution env
> using ExecutionEnvironment.getExecutionEnvironment(), I register a job
> listener to the env and I do some stuff before calling env.execute().
> The listener is executed correctly but if I use the RestClusterClient to
> sibmit the jobGraph exyracted from that main contained in a jar, the
> program is executed as usual but the job listener is not called.
>
> - What cluster backend and application do you use to execute the job?
>>
>
> I use a standalone session cluster for the moment
>
> - Is there anything suspicious you can find in the logs that might be
>> related?
>>
>
> no unfortunately..
>
>
>> Best,
>> Matthias
>>
>> On Thu, Nov 12, 2020 at 7:48 PM Flavio Pompermaier <pomperma...@okkam.it>
>> wrote:
>>
>>> Actually what I'm experiencing is that the JobListener is executed
>>> successfully if I run my main class from the IDE, while the job listener is
>>> not fired at all if I submit the JobGraph of the application to a cluster
>>> using the RestClusterClient..
>>> Am I doing something wrong?
>>>
>>> My main class ends with the env.execute() and i do
>>> env.registerJobListener() when I create the Exceution env
>>> via ExecutionEnvironment.getExecutionEnvironment().
>>>
>>> Thanks in advance for any help,
>>> Flavio
>>>
>>> On Thu, Nov 12, 2020 at 2:13 PM Flavio Pompermaier <pomperma...@okkam.it>
>>> wrote:
>>>
>>>> Hello everybody,
>>>> I'm trying to use the JobListener to track when a job finishes (with
>>>> Flink 1.11.0).
>>>> It works great but I have the problem that logs inside
>>>> the onJobExecuted are not logged anywhere..is it normal?
>>>>
>>>> Best,
>>>> Flavio
>>>>
>>>

Reply via email to