Приложение Spark Streaming с конечной точкой REST - PullRequest
0 голосов
/ 29 апреля 2020

Можно ли использовать REST API в приложении Spark Streaming?

Извините, если мое объяснение не очень подробное, у меня нет опыта работы с Spark Streaming.

I Необходимо разработать веб-приложение в java, которое обрабатывает данные пользователей. Пользователи могут быть миллионами. Несколько пользователей отправляют данные в веб-приложение, которое затем обрабатывает их в распределенном кластере. Этот сценарий подходит для потокового приложения, хотя это не поток с фиксированным интервалом, поскольку пользователи могут отправлять данные в любое время. Поступающие данные огромны. Мне необходимо использовать Apache Spark Streaming для обработки этих данных. Spark Streaming может считывать данные из таких источников, как kafka, flume et c. однако в моем случае кафки нет, скорее данные поступают от пользователей. Мне приходится иметь дело с двумя сценариями ios.

  • Пользователи отправляют данные в веб-приложение, они обрабатываются и сохраняются в хранилище данных, пользователю ничего не возвращается
  • Пользователи отправляют данные на веб-сервер, они обрабатываются, и результат возвращается пользователю.

Пока что я могу подумать:

  1. Пользователи отправляют данные на веб-сервер
  2. Веб-сервер отправляет данные (в формате JSON) в Spark Streaming Application, который бесконечно работает в кластере
  3. Spark Streaming Application обрабатывает данные, и либо индексирует его, либо отправляет обратно на сервер, который затем отправляет его обратно пользователю

Можно ли создать две конечные точки REST в верхней части приложения Spark Streaming (по одной для каждого сценария), на какой веб-сервер может отправлять данные и получать ответ? Может ли приложение Spark Streaming работать как REST-приложение (обрабатывать поступающие данные с сервера в микропакетах), на которое сервер может отправлять данные от пользователей?

PS Я трачу три дня на чтение статей, блогов, даже архивы Spark Summit, я не мог найти никакого решения. Я понятия не имею, как это сделать. Любая помощь / идеи будут высоко оценены.

...