Как я могу делиться состоянием между своими работами Flink? - PullRequest
0 голосов
/ 29 сентября 2019

Я запускаю несколько заданий из моего файла .jar. Я хочу делить состояние между своими работами. но все входы потребляют (от kafka) в каждом задании и генерируют дублированный вывод. я вижу мою панель мерцания. для всех заданий "отправлено записей" 3. Я думаю, что число делится на мои задания.

Я создаю задание с помощью этой команды

bin/flink run app.jar

Как это исправить?

1 Ответ

2 голосов
/ 29 сентября 2019

Из-за ориентации на масштабируемость и высокую производительность состояние Flink является локальным. Flink на самом деле не предоставляет механизм для разделения состояния между заданиями.

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

При использовании с Kafka каждый раздел Kafka может быть прочитан другой подзадачей в Flink и обработан своим собственным параллельным экземпляром. конвейера.

Вы можете начать с запуска одного параллельного экземпляра своей работы с помощью

bin/flink run --parallelism <parallelism> app.jar

Чтобы это удалось, ваш кластер должен иметь накак минимум столько же свободных слотов, сколько запрашиваемый вами параллелизм. Параллелизм должен быть меньше или равен количеству разделов в используемой теме (-ях) Kafka. Потребители Flink Kafka будут координировать свои действия - каждый из них читает с одного или нескольких разделов.

...