Spark - Введение

Промышленности широко используют Hadoop для анализа своих наборов данных. Причина в том, что фреймворк Hadoop основан на простой модели программирования (MapReduce) и обеспечивает масштабируемое, гибкое, отказоустойчивое и экономичное вычислительное решение. Здесь основная задача - сохранить скорость обработки больших наборов данных с точки зрения времени ожидания между запросами и времени ожидания для запуска программы.

Spark был представлен Apache Software Foundation для ускорения программного процесса вычислительных вычислений Hadoop.

В отличие от общего убеждения, Spark is not a modified version of Hadoopи на самом деле не зависит от Hadoop, потому что имеет собственное управление кластером. Hadoop - это лишь один из способов реализации Spark.

Spark использует Hadoop двумя способами. storage и второй processing. Поскольку Spark имеет собственное вычисление для управления кластером, он использует Hadoop только для хранения.

Apache Spark

Apache Spark - это молниеносная технология кластерных вычислений, предназначенная для быстрых вычислений. Он основан на Hadoop MapReduce и расширяет модель MapReduce, чтобы эффективно использовать ее для большего количества типов вычислений, включая интерактивные запросы и потоковую обработку. Главная особенность Spark - этоin-memory cluster computing что увеличивает скорость обработки приложения.

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

Эволюция Apache Spark

Spark - это один из подпроектов Hadoop, разработанный в 2009 году в AMPLab Калифорнийского университета в Беркли Матей Захария. Он был открыт в 2010 году по лицензии BSD. Он был передан в дар Фонду программного обеспечения Apache в 2013 году, и теперь Apache Spark стал проектом Apache верхнего уровня с февраля 2014 года.

Особенности Apache Spark

Apache Spark имеет следующие особенности.

  • Speed- Spark помогает запускать приложение в кластере Hadoop до 100 раз быстрее в памяти и в 10 раз быстрее при запуске на диске. Это возможно за счет уменьшения количества операций чтения / записи на диск. Он хранит данные промежуточной обработки в памяти.

  • Supports multiple languages- Spark предоставляет встроенные API на Java, Scala или Python. Поэтому вы можете писать приложения на разных языках. Spark предлагает 80 операторов высокого уровня для интерактивных запросов.

  • Advanced Analytics- Spark поддерживает не только «Карта» и «уменьшить». Он также поддерживает SQL-запросы, потоковые данные, машинное обучение (ML) и алгоритмы Graph.

Spark на основе Hadoop

На следующей схеме показаны три способа создания Spark с компонентами Hadoop.

Ниже описаны три способа развертывания Spark.

  • Standalone- Автономное развертывание Spark означает, что Spark занимает место поверх HDFS (распределенной файловой системы Hadoop), а пространство для HDFS выделяется явно. Здесь Spark и MapReduce будут работать бок о бок, чтобы охватить все искровые задания в кластере.

  • Hadoop Yarn- Развертывание Hadoop Yarn означает просто запуск Spark на Yarn без предварительной установки или необходимого доступа root. Это помогает интегрировать Spark в экосистему Hadoop или стек Hadoop. Это позволяет другим компонентам работать поверх стека.

  • Spark in MapReduce (SIMR)- Spark в MapReduce используется для запуска Spark Job в дополнение к автономному развертыванию. С SIMR пользователь может запустить Spark и использовать его оболочку без какого-либо административного доступа.

Компоненты Spark

На следующем рисунке показаны различные компоненты Spark.

Ядро Apache Spark

Spark Core - это основной движок общего исполнения для платформы Spark, на которой построены все остальные функции. Он обеспечивает вычисления в памяти и ссылки на наборы данных во внешних системах хранения.

Spark SQL

Spark SQL - это компонент поверх Spark Core, который представляет новую абстракцию данных под названием SchemaRDD, которая обеспечивает поддержку структурированных и полуструктурированных данных.

Spark Streaming

Spark Streaming использует возможность быстрого планирования Spark Core для выполнения потоковой аналитики. Он принимает данные в мини-пакетах и ​​выполняет преобразования RDD (устойчивые распределенные наборы данных) для этих мини-пакетов данных.

MLlib (библиотека машинного обучения)

MLlib - это распределенная структура машинного обучения, превосходящая Spark, благодаря архитектуре Spark на основе распределенной памяти. Согласно тестам, выполненным разработчиками MLlib для реализаций альтернативных наименьших квадратов (ALS). Spark MLlib в девять раз быстрее дисковой версии Hadoop.Apache Mahout (до того, как Mahout получил интерфейс Spark).

GraphX

GraphX ​​- это распределенная среда обработки графов поверх Spark. Он предоставляет API для выражения вычислений графов, которые могут моделировать определяемые пользователем графы с помощью API абстракции Pregel. Он также обеспечивает оптимизированную среду выполнения для этой абстракции.