Режим непрерывной обработки Spark не читает все разделы темы kafka

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

Приложение простое, оно просто читает из первой темы и публикует по второй. Проблема в том, что моя консоль-потребитель, который читает из второй темы, видит только сообщения из одного раздела первой темы. Это означает, что мое приложение Spark читает сообщения только из одного раздела темы.

Как заставить мое приложение Spark читать из обоих разделов темы?

Примечание

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




Ответы (1)


Я нашел ответ на свой вопрос в документации Spark Structured Streaming в раздел предупреждений

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

person M-Doru    schedule 10.01.2019
comment
Ядра или исполнители? Один исполнитель может занимать одно ядро. Ваш кластер должен иметь столько ядер, а ваше приложение можно настроить так, чтобы оно занимало до cores * executors - person OneCricketeer; 10.01.2019
comment
Спасибо за вопрос! Я не был очень точным, я имел в виду общее количество ядер для приложения, что означает #cores/executor * #executors назначенный приложению - person M-Doru; 11.01.2019
comment
Хорошо, спасибо. Просто интересно, вы измерили задержку при непрерывной обработке? - person kensai; 16.09.2019