Sorry for the lame question – but how can I achieve that?
I’m with 1.4, created a new class that extends StreamingMultipleProgramsTestBase, call the super() and then call the main method.
The thing is that in my Util class I create all of the things about Checkpoints (including the setting of the hdfs folder and the other stuffs described below) and I again can’t run it cause of “CheckpointConfig says to persist periodic checkpoints, but no checkpoint directory has been configured. You can configure configure one via key 'state.checkpoints.dir'”
From: Chesnay Schepler <chesnay@xxxxxxxxxx>
Sent: Wednesday, May 9, 2018 3:19:19 PM
To: Georgi Stoyanov; user@xxxxxxxxxxxxxxxx
Subject: Re: Using two different configurations for StreamExecutionEnvironment
The jobs are still executed in local JVM along with the cluster, so local debugging is still possible.
On 09.05.2018 14:15, Georgi Stoyanov wrote:
Thanks for the suggestion but this doesn’t sound like a good option, since I prefer local to remote debugging.
My question sounds like really common thing and the guys behind Flink should’ve think about it.
Of course I’m really new to the field of stream processing and maybe I don’t understand completely the processes here.
I suggest to run jobs in the IDE only as tests. This allows you to use various Flink utilities to setup a cluster with your desired configuration, all while keeping these details out of the actual job code.
If you are using 1.5-SNAPSHOT, have a look at the MiniClusterResource class. The class can be used as a jUnit Rule and takes care of everything needed to run any job against the cluster it sets up internally.
For previous versions have your test class extend StreamingMultipleProgramsTestBase.
The test method would simply call the main method of your job.
On 09.05.2018 11:55, Georgi Stoyanov wrote:
We have an Util that creates for us StreamExecutionEnvironment with some Checkpoint Configurations. The configuration for externalized checkpoints and state backend fails running of the job locally from IntelliJ. As a solution we currently comment those two configurations, but I don’t like that.
So far I found that I can just use ‘createLocalEnvoirment’ method but I still have no much ideas how to place it nicely in the existing logic (In the way that it doesn’t look like a hack)
If you have some ideas or know-how from your projects, please share them