Пакетное выполнение Spark Streaming Kafka Stream

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

Является ли распространенным сценарием использование приложения для запуска пакета только один раз, например, в конце дня, сбора всех данных из темы, выполнения некоторой агрегации и преобразования и т. Д.?

Это означает, что после запуска приложения с помощью spark-submit все это будет выполняться одним пакетом, а затем приложение будет закрыто. Или создается искровой поток для непрерывного и непрерывного потокового воспроизведения данных непрерывными пакетами?


person JerryParker    schedule 28.11.2018    source источник
comment
Потоковая передача Spark предназначена для последнего, обработки бесконечного бесконечного потока данных. Однако он обрабатывает этот поток партиями настраиваемого размера. Если имеет смысл сбрасывать все эти данные один раз в день из kafka в ваш искровый кластер, то вы можете просто запускать ежедневное искровое задание без потоковой передачи искр.   -  person medloh    schedule 28.11.2018
comment
Взгляните на структурированную потоковую передачу и _ 1_. Он предназначен именно для такого режима обработки.   -  person 10465355    schedule 29.11.2018
comment
Спасибо всем за вклад. Думаю, я воспользуюсь KafkaUtils.createRDD, чтобы получить набор данных в другом месте (spark.apache.org/docs/2.3.0/).   -  person JerryParker    schedule 30.11.2018


Ответы (1)


Вы можете использовать api kafka-stream и исправить время окна, чтобы выполнять агрегацию и преобразование событий в вашей теме только по одному пакету за раз. для перемещения информации об использовании окон проверьте этот https://kafka.apache.org/21/documentation/streams/developer-guide/dsl-api.html#windowing.

person Mehdi Bahra    schedule 28.11.2018