Apache Spark — это open source фреймворк для параллельной обработки и анализа неструктурированных данных.
Apache Spark в настоящий момент является наиболее перспективным проектом Apache и позиционируется как универсальная платформа для обработки данных и быстрых кластерных вычислений. Apache Spark производит все операции в оперативной памяти, благодаря чему выигрывает в производительности в 100 раз и позволяет обрабатывать данные в потоке.
Apache Spark работает в среде кластеров Hadoop на YARN, под управлением Mesos, в облаке на AWS или других облачных сервисах, а также полностью автономно.
Основные преимущества Apache Spark:
Производительность
Удобный интерфейс
Отказоустойчивость
Поддержка четырех языков: Scala, Java, Python и R
Компоненты архитектуры Apache Spark
Apache Spark состоит из пяти компонентов: ядра и четырех библиотек, каждая из которых решает определенную задачу.
Ядро Apache Spark (Spark Core) — основа фреймворка. Это базовый движок для параллельной и распределенной обработки данных. Ядро отвечает за:
Управление памятью и восстановление системы после отказов
Планирование, распределение и отслеживание заданий в кластере
Взаимодействие с хранилищем данных
Apache Spark SQL — одна из четырех библиотек фреймворка, которая использует структуру данных DataFrames и может выступать в роли распределенного механизма запросов SQL. Библиотека возникла как порт Apache Hive для работы поверх Apache Spark (вместо MapReduce), а сейчас уже интегрирована со стеком Spark. Apache Spark SQL обеспечивает поддержку различных источников данных и позволяет переплетать SQL-запросы с трансформациями кода.
Apache Spark Streaming — инструмент для обработки потоковых данных, который легко интегрируется с широким спектром популярных источников данных: HDFS, Flume, Kafka, ZeroMQ, Kinesis и Twitter. Apache Spark Streaming обрабатывает данные в реальном в режиме micro-batch, минимальное время обработки каждого micro-batch 0,5 секунды. Apache Spark Streaming получает входные потоки данных и разбивает данные на пакеты. Далее они обрабатываются движком Apache Spark, после чего генерируется конечный поток данных также в пакетной форме. API Spark Streaming точно соответствует API Spark Core, поэтому можно одновременно работать как с пакетными, так и с потоковыми данными.
MLlib – библиотека для машинного обучения, предоставляющая различные алгоритмы: классификация, регрессия, деревья принятия решений, рекомендация, кластеризация, тематическое моделирование и т.д.
GraphX – это библиотека для работы с графами и выполнения с ними параллельных операций. Библиотека предоставляет собой универсальный инструмент для исследовательского анализа и итерационных вычислений на основе графов. Кроме встроенных операций, GraphX также имеет библиотеку обычных алгоритмов для работы с графами, например, PageRank.
Некоторые примеры применения Apache Spark:
Банки и страховые компании (прогноз востребованности услуг)
Поисковики и социальные сети (выявление фейковых аккаунтов, оптимизация таргетинга и т.д.)
Службы такси (анализ времени и геолокаций, прогноз спроса и цен)
Транспортные и авиакомпании (модели для прогнозирования задержек рейсов)
В целом Spark подходит для решения любых задач, где необходима быстрая обработка больших объемов данных и/или продвинутая аналитика на больших данных.
Аналитика и искусственный интеллект на производстве
Как повысить эффективность и сократить потери с помощью данных?
Узнайте, как использовать данные на производстве с пользой для бизнеса: как обнаруживать аномалии, утечки и поломку оборудования, повышать эффективность процессов, принимая взвешенные решения на разных этапах производства.
Регистрируйтесь на наш вебинар и будьте в курсе!