То, что Флинк пытается сделать, когда планирование DAG - это прежде всего попытка связать как можно больше операторов.Цепи обычно разрываются, если у оператора есть несколько входов или в случайном порядке.Цепочки будут выполняться в единственном Task
на TaskManager
и не предполагают какой-либо сериализации между связанными операторами.
После преобразования входной группы DAG в Tasks
Flink будет распараллеливать группу DAG с помощьюразбиение Tasks
на подзадачи.Подзадача получает и обрабатывает раздел ввода родительской задачи.
Next Flink выделит для каждой подзадачи слот.Если для операторов разрешено совместное использование слотов (что является значением по умолчанию), то подзадачи от разных операторов могут быть запланированы на один и тот же Slot
.Это не только позволяет легче рассуждать о необходимых ресурсах, но и обеспечивает лучшее использование ресурсов.Каждая подзадача выполняется отдельным потоком.
Более подробную информацию о планировании работы Флинка можно найти здесь .