Spark Streaming - краткое описание

Spark Streaming - расширение ApacheSpark в виде маштабируемого отакзоустойчевого обработчика потоков данных в реальном времени.

Позволяет писать и запускать приложения в потоковом режиме. При этом, приложение сможет одновременно работать как с потоками данных, так и осуществлять пакетную обработку – без существенных изменений в коде. Плюс ко всему, фреймворк способен автоматически восстанавливать данные после ошибочных действий со стороны системы – от пользователя в этом случае не потребуется написать ни строчки кода.
Spark Streaming умеет забирать данные за фиксированный промежуток времени (например, за 30 секунд) из Kafka, Flume, ZeroMQ, Kinesis, TCP сокета, и т.д. Обрабатывать их и сохранять в файловую систему, базу данных. Можно применять функции map, reduce, join, машинное обучение и т.д.

Обработанные данные могут быть записаны в файловую систему, базу данных, realtime графики. Можно применить машинное обучение и алгоритмы для работы с графами для обработки потока данных.


Пример кода:
// Создаём DStream что приконектится  к hostname:port, например к localhost:9999
val lines = ssc.socketTextStream("localhost", 9999)
// Делим каждую строку на слова
val words = lines.flatMap(_.split(" "))
// Подсчитываем количество слов в каждой групе
val pairs = words.map(word => (word, 1))
val wordCounts = pairs.reduceByKey(_ + _)


Полезные ссылки:
Документация

Коментарі

Популярні дописи з цього блогу

Минимальные требование для кластера Hadoop(with Spark)

Apache Spark - основные команды

Apache Spark Resource Management и модель приложений от YARN