Apache Flink: руководство для установки параллелизма? - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь получить некоторые простые правила или рекомендации, какие значения следует устанавливать для параллелизма оператора или задания.Мне кажется, что это должно быть число <= количество доступных слотов задач?</p>

Например, предположим, у меня есть 2 машины диспетчера задач, каждая с 4 слотами для задач.Предполагая, что в кластере не выполняются другие задания, могу ли я установить параллелизм для таких операций, как filter и map, равным 8?Если нет, то какой будет разумный номер?

Что произойдет, если вы запросите больше параллелизма, чем слотов задач?В приведенном выше примере, что произойдет, если я установлю параллелизм на 12 для операций?Я предполагаю, что он будет использовать столько, сколько доступно?

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

Спасибо!

1 Ответ

0 голосов
/ 11 июня 2018

В целом, неплохо бы не жестко кодировать параллелизм, потому что обычно оператору приходится решать, сколько ресурсов выделить для вашей работы.Более того, требования к ресурсам обычно зависят от ваших соглашений об уровне обслуживания и фактической рабочей нагрузки и, таким образом, не зависят от программы и должны рассматриваться отдельно.

С Flink 1.5.0 при работе на Yarn или Mesosвам нужно только выбрать параллелизм вашей работы, и система позаботится о том, чтобы запускалось достаточно TaskManager с достаточным количеством слотов для выполнения вашей работы.Это происходит полностью динамически, и вы даже можете изменить параллелизм своей работы во время выполнения.

Если вы используете автономный режим или если в вашем кластере Yarn / Mesos недостаточно ресурсов / слотов, то задание не будет выполненос NoResourceAvailableException, если система не может получить требуемые слоты.

...