2

Я читаю через этот блог:Apache Кафка и Спарк Streaming

http://blog.jaceklaskowski.pl/2015/07/20/real-time-data-processing-using-apache-kafka-and-spark-streaming.html

Он обсуждает об использовании искровой Streaming и Apache Кафку сделать некоторые вблизи обработки в реальном времени. Я полностью понимаю статью. Он показывает, как я могу использовать Spark Streaming для чтения сообщений из темы. Я хотел бы знать, есть ли Spark Streaming API, который я могу использовать для написания сообщений в теме Kakfa?

My use case довольно простой. У меня есть набор данных, которые я могу читать из данного источника с постоянным интервалом (скажем, каждую секунду). Я делаю это с использованием реактивных потоков. Я хотел бы сделать некоторые аналитики по этим данным, используя Spark. Я хочу иметь вину-терпимость, поэтому Кафка вступает в игру. Так что я бы по существу сделать следующее (поправьте меня, если я ошибаюсь):

  1. Использование реактивных потоков получает данные из внешнего источника через постоянные интервалы
  2. Pipe результат в Кафки тему
  3. Использование Спарк Streaming, создать контекст передачи для потребителя
  4. Выполнить аналитику на потребляемые данных

Один другой вопрос, хотя, является API Streaming в Спарк реализацией спецификация реактивных потоков? Имеет ли обратная обработка под давлением (Spark Streaming v1.5)?

ответ

3
  1. Нет, в настоящее время ни один из встроенных API-интерфейсов Spark Streaming не является реализацией реализации реактивных потоков. Но есть issue for that, которым вы захотите следовать.
  2. Но Spark Streaming 1.5 has internal back-pressure-based dynamic throttling. В трубопроводе есть work to extend that beyond throttling. Это дросселирование совместимо с API прямого потока Kafka.

  3. Вы можете написать Kafka в приложении Spark Streaming, вот one example.

(Полное раскрытие: Я один из implementers некоторых из противодавления работы)

+0

У меня есть вопрос о противодавлении функции вам как Implementor: Я позволяя противодавление, но не влияют на систему. Я обрабатываю довольно большие элементы данных с пропускной способностью около 40 единиц в секунду из моего источника. Я исправил уже maxRate, так как в противном случае время задержки продолжает расти и никогда не останавливаться. Противодавление, похоже, работало с обработкой твитов, где скорость передачи данных составляет около 15000 твитов/с ... – chAlexey

1

Вы можете посмотреть ссылку here для ряда примеров того, как это сделать.

Смежные вопросы