with Flink 1.5 we added resource elasticity. This means that Flink is now
able to allocate new containers on a cluster management framework like Yarn
or Mesos. Due to these changes (which also apply to the standalone mode),
Flink no longer reasons about a fixed set of TaskManagers because if needed
it will start new containers (does not work in standalone mode). Therefore,
it is hard for the system to make any decisions about spreading slots
belonging to a single job out across multiple TMs. It gets even harder when
you consider that some jobs like yours might benefit from such a strategy
whereas others would benefit from co-locating its slots. It gets even more
complicated if you want to do scheduling wrt to multiple jobs which the
system does not have full knowledge about because they are submitted
sequentially. Therefore, Flink currently assumes that slots requests can be
fulfilled by any TaskManager.
On Wed, Jul 18, 2018 at 7:30 AM Shachar Carmeli <[hidden email]>
> We have 4 jobs with parallelism 3 that are running over 3 task manager with
> 4 slots per each , each task manager runs on a different VM ,
> On Flink 1.3.2 the jobs were evenly distributed per node each job took one
> task slot of each task manager .
> After upgrading to flink 1.5 , each job is running on a single task
> manager (with a carry over to another if there are no slots left)
> The jobs are not evenly by load which cause some task managers to consume
> more resources (CPU/memory) than other task managers.
> Is there a way to return to an even distribution?