Apache Flink и Apache Pulsar

Я использую Flink для чтения данных из Apache Pulsar. У меня в Pulsar есть разделенная тема с 8 разделами. Я создал 1000 сообщений в этой теме, распределенных по 8 разделам. В моем ноутбуке 8 ядер, поэтому у меня есть 8 подзадач (по умолчанию parallelism = # ядер). Я открыл Flink-UI после выполнения кода из Eclipse и обнаружил, что некоторые подзадачи не получают никаких записей (бездействуют). Я ожидаю, что все 8 подзадач будут использованы (я ожидаю, что каждая подзадача будет сопоставлена ​​с одним разделом в моей теме).

После перезапуска задания я обнаружил, что иногда используются 3 подзадачи, а иногда - 4 задачи, в то время как остальные подзадачи остаются незанятыми.

пожалуйста, ваша поддержка, чтобы прояснить этот сценарий.

Также как я могу узнать, есть ли перестановка между дублями?

Мой код:

ConsumerConfigurationData<String> consumerConfigurationData = new ConsumerConfigurationData<>();

Set<String> topicsSet = new HashSet<>();
topicsSet.add("flink-08");

consumerConfigurationData.setTopicNames(topicsSet);
consumerConfigurationData.setSubscriptionName("my-sub0111");
consumerConfigurationData.setSubscriptionType(SubscriptionType.Key_Shared);
consumerConfigurationData.setConsumerName("consumer-01");
consumerConfigurationData.setSubscriptionInitialPosition(SubscriptionInitialPosition.Earliest);

PulsarSourceBuilder<String> builder = PulsarSourceBuilder.builder(new SimpleStringSchema()).pulsarAllConsumerConf(consumerConfigurationData).serviceUrl("pulsar://localhost:6650");

SourceFunction<String> src = builder.build();
DataStream<String> stream = env.addSource(src);

stream.print(" >>> ");

person Mohammed Shalaby    schedule 22.01.2020    source источник


Ответы (1)


Что касается вопроса о Pulsar, я знаю недостаточно, чтобы помочь. Я рекомендую настроить более крупный тест и посмотреть, что из этого получится. Обычно у вас будет больше разделов, чем слотов, и некоторые слоты занимают несколько разделов в некоторой степени случайным образом.

Также как я могу узнать, есть ли перестановка между дублями?

Самый простой способ - взглянуть на топологию веб-интерфейса Flink. Там вы должны увидеть количество задач и типы каналов. Вы можете опубликовать снимок экрана, если хотите получить более подробную информацию, но в этом случае нет ничего, что будет перетасовано, поскольку у вас есть только источник и приемник.

person Arvid Heise    schedule 28.01.2020