Hey,
for our CI/CD cycle I'd like to try out our Flink Jobs in an development environment without running them against a huge EMR cluster (which is what we do for production), so something like a standalone mode.

Until now, for this standalone running, I just started the job jar. As the "env.execute()" is in the main-method, this works. I think this is callled "Local Mode" by the Flink Devs. I packaged the whole thing in a docker container so I have a deployable artefact.

The problem with that is, that the memory constraint seem to be difficult to control: Setting Xmx and Xms for the job doesn't seem to limit the memory. This is most likely due to flinks off-heap memory allocation.

Now, I got as feedback that perhaps the MiniCluster is the way to go instead of the "Local Mode".

My questions:
1. Is the MiniCluster better than the local mode? What are the use-cases in which you would choose one over the other? 2. Is there an example how to use the MiniCluster? I see that I need a JobGraph, how do I get one? 3. What are the tuning parameters to limit the memory consumption of the MiniCluster (and maybe the local mode)?

Thanks for your help,
Dominik

Reply via email to