Как оптимизатор Flink выбирает параллелизм? - PullRequest
1 голос
/ 20 мая 2019

Ниже приведен слайд об оптимизаторе Флинка из моей презентации, которую я смотрел.Меня особенно смущает комментарий о том, что Оптимизатор Флинка принимает решение о параллелизме в зависимости от количества элементов предоставленного набора данных.

В настоящее время я прохожу Flink 1.4 (версия, которую яиспользуя) документацию, и я не могу найти никакой документации относительно решения Флинка о параллелизме. Нужно ли предоставлять оптимизатору Flink статистику о наборах данных, чтобы воспользоваться этой функцией?

enter image description here

НаВ связи с этим я подумал, что, указав значение maxParallelism, это потенциально позволит Flink динамически определять, какой уровень параллелизма будет подходящим для предоставленного набора данных (как подробно описано выше).Однако я не могу указать максимальный параллелизм, как указано в документации Flink 1.4, поэтому я не смог проверить свою гипотезу.Для некоторого контекста я использую DataSet API. Как указать максимальный параллелизм во Flink?

ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
env.setMaxParallelism(20); // can't seem to call this method on env

enter image description here

1 Ответ

1 голос
/ 25 мая 2019

Не знаю, где вы нашли эту презентацию, но она довольно старая, вероятно, 2014 или начало 2015 года.

На слайде обсуждается оптимизатор API Flink DataSet. Оптимизатор не используется для оптимизации программ API DataStream. С другой стороны, настройка максимального параллелизма применима только для программ API DataStream, но не для программ DataSet.

Цитируемое предложение находится под пунктом «Цель: эффективные планы выполнения планов обработки данных». Не все его подпункты были реализованы, включая автоматическую настройку параллелизма exeuction.

Дорожная карта сообщества Flink включает план интеграции API DataSet в API DataStream и удаления оптимизатора. Табличный API / SQL Flink будет по-прежнему иметь оптимизатор на основе затрат (на основе Apache Calcite) и может также настроить параллелизм выполнения в будущем.

...