Три причины использовать Spark
Apache Spark — целостная вычислительная система, включающая в себя набор библиотек для параллельной обработки данных на кластерах компьютеров. Сегодня это активно разрабатываемый и очень полезный инструмент с открытым исходным кодом, который пригодится специалистам, работающим с большими данными. В этой статье мы рассмотрим, почему стоит использовать именно Spark.
Spark поддерживает популярные языки программирования (Python, Java, Scala, R) и состоит из ядра и нескольких расширений: — Spark SQL (позволяет выполнять над данными SQL-запросы); — Spark Streaming (надстройка для обработки потоковых данных); — Spark MLlib (набор ML-библиотек); — GraphX (для распределённой обработки графов).
Однако не только это делает его одним из лидеров в области эффективной работы с Big Data. Что же, давайте рассмотрим, почему Apache Spark входит сегодня в технологический стек многих крупных компаний:
Причина № 1
Spark — это всё-в-одном для работы с Big Data. Spark действительно создан специально для решения широкого круга задач по анализу данных. Тут и простая загрузка данных, и SQL-запросы, и машинное обучение, и потоковые вычисления — и всё это посредством одного и того же вычислительного инструмента с неизменным набором API. Такая программная многозадачность становится возможной благодаря тому, что Spark имеет целостную природу, что делает решение разноплановых задач более простым и эффективным.
Простой пример: когда специалист загружает данные посредством SQL-запроса, а потом оценивает ML-модель с помощью Spark ML, движок способен объединить данные этапы в один проход по данным.
Причина № 2
Для повышения эффективности вычислений Spark оптимизирует своё машинное ядро. Spark лишь управляет загрузкой данных из систем хранения, выполняя над ними вычисления, однако сам он конечным постоянным хранилищем не является.
Как известно, перемещать данные — дорогое удовольствие. Spark же сфокусирован только на вычислениях. Он обрабатывает данные посредством вычислительных операций, причём не имеет значения, где именно эти данные находятся. В результате, со Spark можно работать, если имеешь дело с большим разнообразием постоянных систем хранения, включая: — облачные системы (Azure Storage, Amazon S3); — распределённые файловые системы (Apache Hadoop); — пространства для хранения ключей (Apache Cassandra); — распределённые программные брокеры сообщений (Apache Kafka).
А ещё Spark широко применяется в средах, где в архитектуре Hadoop нет смысла. К примеру, на публичном облаке (там, где можно купить хранение отдельно от обработки) либо в потоковых приложениях.
Причина № 3
Библиотеки Spark предоставляют весьма широкую функциональность . На сегодняшний день именно стандартные Spark-библиотеки являются основной частью данного проекта. И если ядро Spark почти не менялось с момента выпуска, то количество библиотек постоянно росло в целях добавления ещё большей функциональности. В результате, Spark стал мультифункциональным инструментом анализа данных. Кроме тех библиотек, которые мы уже упомянули в начале статьи, есть и сотни открытых сторонних библиотек, начиная с работающих с коннекторами, заканчивая решениями для разнообразных систем хранения и алгоритмов Machine Learning.
Интересует Spark? Этот инструмент проходят на курсах "Промышленный ML на больших данных" и "Экосистема Hadoop, Spark, Hiveв" в OTUS.