Как увеличить количество исполнителей, которые обрабатывают определенный этап в Spark Streaming / Kafka? - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь прочитать данные из Kafka (1 тема, 5 разделов), используя подход Spark Streaming Direct. Чтобы увеличить параллелизм при обработке данных, я установил Dstream.repartition(60). Однако кажется, что только 5 исполнителей работают на каждом этапе каждой партии потоковой передачи?

Я установил следующие параметры:

--num-executors 20 
--executor-cores 4
--executor-memory 3G
--driver-memory 3G
--spark.default.Parallelism 60

Моя путаница:
Я хочу уменьшить время обработки, поэтому я пытаюсь увеличить число Vcores, но этот метод, похоже, не работает. Зачем? Спасибо.

1 Ответ

0 голосов
/ 28 августа 2018

(1 тема, 5 разделов) с использованием подхода Spark Streaming Direct .... Кажется, что только 5 исполнителей работают

Это все, что ты собираешься получить. Вы не можете иметь более одного потребителя на раздел темы.

Единственный способ получить Spark (или любую группу Kafka Consumer) - это увеличить количество исполнителей - это перераспределить саму тему, и эта терминология отличается от терминологии перераспределения в Spark

Примечание: возможно увеличение количества разделов темы, но ключи сообщений больше не будут однозначными для политики хранения темы для последнего сообщения, написанного перед перераспределением

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

...