Установить taskmanager.numberOfTaskSlots для каждого рабочего в Flink - PullRequest
0 голосов
/ 08 октября 2019

Я работаю в автономном кластере. Все серверы могут запускать taskmanager.sh. Мой кластер неоднороден с различным количеством ядер и памятью. Код, который я запускаю (Apache Beam ParDo's), представляет собой однопоточную операцию Python.

Я бы хотел, чтобы количество слотов задач было разным для каждого сервера. Как мне запустить flink с разными слотами для разных серверов?

Стоит ли вместо этого запускать несколько taskmanager.sh на сервер?

Ссылка: https://stackoverflow.com/a/54117789/2184122

Iтакже надеемся, что это утверждение:

A Flink cluster needs exactly as many task slots as the highest parallelism
used in the job. No need to calculate how many tasks (with varying parallelism)
a program contains in total.

означает общее количество слотов (т.е. примерно #Hosts * # Cores / host). Правильно ли мое понимание ??

1 Ответ

0 голосов
/ 09 октября 2019

Обычно рекомендуется запускать с одним слотом на каждого менеджера задач в качестве отправной точки (особенно в контейнерах, хотя это не похоже на ваш случай). Это обеспечивает лучшую изоляцию и уменьшает размеры кучи, что сводит к минимуму влияние ГХ. Однако в какой-то момент, когда вы увеличиваете масштаб, становится неработоспособно, когда менеджер заданий координирует так много ТМ, и вам лучше работать с несколькими слотами на ТМ.

Кроме того, планировщик думает только о слотах, а не TM, поэтому вы хотите, чтобы слоты были единообразными с точки зрения их ресурсов. Типичная отправная точка - это выделение для каждого компьютера столько слотов, сколько имеется ядер, хотя для интенсивных вычислительных нагрузок может потребоваться больше ядер на слот.

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