Apache Flink задание не запланировано на нескольких TaskManager в Kubernetes (реплики) - PullRequest
0 голосов
/ 06 марта 2020

У меня есть простое задание Flink, которое читает из источника ActiveMQ и отправляет в базу данных и печатает. Я развернул задание в Kubernetes с 2 TaskManagers, у каждого Task Slots из 10 (taskmanager.numberOfTaskSlots: 10). Я настроил параллелизм больше, чем общее TaskSlots доступное (ie., 10 в данном случае).

Когда я вижу Flink Dashboard, я вижу, что это задание выполняется только в одном из TaskManager, но другой TaskManager не имеет рабочих мест. Я проверил это, проверив каждого оператора, где он запланирован, также на странице Task Manager UI у одного из менеджеров есть все свободные слоты. Я прилагаю ниже изображения для справки.

Я что-то не так настроил? Где пробел в моем понимании? А может кто-нибудь объяснить это?

enter image description here

Работа enter image description here

enter image description here

1 Ответ

2 голосов
/ 06 марта 2020

Первый диспетчер задач имеет достаточно слотов (10), чтобы полностью удовлетворить требования вашей работы.

Поведение планировщика по умолчанию заключается в полном использовании слотов одного диспетчера задач перед использованием слотов из другого диспетчера задач. Если вместо этого вы предпочитаете, чтобы Flink распределял рабочую нагрузку по всем доступным менеджерам задач, установите cluster.evenly-spread-out-slots: true в flink-conf.yaml. (Эта опция была добавлена ​​в Flink 1.10, чтобы воссоздать поведение планирования, подобное тому, которое было по умолчанию до Flink 1.5.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...