Как я могу разделить состояние между моими рабочими местами flink?

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

Я создаю работу с помощью этой команды

bin/flink run app.jar

Как я могу это исправить?


person Mohammad Hossein Gerami    schedule 29.09.2019    source источник
comment
Расскажите, пожалуйста, еще немного о том, чего вы пытаетесь достичь. Например, если рассказать нам о том, что вы уже пробовали, это поможет прояснить ситуацию.   -  person David Anderson    schedule 29.09.2019
comment
Похоже, вы запускаете несколько копий одного и того же приложения и хотите, чтобы они согласовывались друг с другом. Это верно? Почему вы выбрали именно это, а не запуск одного экземпляра приложения с более высокой степенью параллелизма?   -  person David Anderson    schedule 29.09.2019
comment
Параллелизм может проскочить на многоядерный процессор? или просто можете создать многопоточность для собственного процесса?   -  person Mohammad Hossein Gerami    schedule 29.09.2019


Ответы (1)


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

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

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

Вы можете начать с запуска одного параллельного экземпляра вашего задания через

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

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

person David Anderson    schedule 29.09.2019