Как правильно настроить параллелизм Flink?

#apache-flink

#apache-flink

Вопрос:

Я работаю над проектом Flink, который запрашивает много вычислений в каждом операторе. Я не уверен, как мне настроить параллелизм. Похоже, что Flink хотел бы сначала развернуть все экземпляры каждого оператора для первого taskmanger, а затем соответствующим образом развернуть другие параллелизмы для остальных taskmanger.

Такой подход приводит к потере большого количества ресурсов. Например, предположим, что у нас всего 4 таксменеджера. У нас есть операторы A и B, параллелизм равен 2 и 2. И оператор B запрашивает много ресурсов для вычислений. Возможно ли развернуть оператор A в taskmanager 1 и 2 и развернуть оператор B в taskmanger 3 и 4. Это помогает использовать ресурсы. В противном случае операторы A и B будут совместно использовать ресурс в одном и том же taskmanager.

Комментарии:

1. Возможно, вы ищете параметр конфигурации cluster.evenly-spread-out-slots: true . Эта стратегия пытается равномерно распределить слоты по всем доступным исполнителям задач.

2. @DavidAnderson Я пробовал это. Но это действительно помогает. Мое приложение работает в Flink 1.11. Все подзадачи переходят к одному TM, и только подзадачи, которые имеют более 1 параллелизма, переходят к другому TM.