Spark — это движок для высокоскоростной обработки больших объемов данных. Обработка может выполняться с помощью пакетной обработки, потоковой передачи в реальном времени и передовых методов интеллектуального анализа данных. Внутренняя разработка используя язык .scala, в то время как Java, Python и R могут использоваться в дополнение к Scala для написания кода для обработки в Spark.
Модули Spark
Spark имеет несколько модулей, доступных как часть проекта для облегчения работы с различными типами данных и назначениями, это:
Spark SQL, Spark Streaming, Spark MLlib, Spark GraphX. Spark Cluster
Spark работает в кластерах, которыми управляет один из следующих менеджеров ресурсов:
Автономный простой кластер, управляемый внутри Spark, Apache Mesos
Диспетчер ресурсов с планированием, Hadoop Yarn
Менеджер ресурсов в Hadoop 2
Kubernetes система для автоматической доставки ресурсов, масштабирования и управления контейнерными приложениями.
Приложение Spark состоит из ряда независимых процессов в кластере enforcers, координируемые управляющей программой SparkContext. Исполнители выполняют задачи, предоставляемые управляющей программой, в приложении, переданном в SparkContext.
Наборы данныхБазовым ядром блока данных является RDD (устойчивый распределенный набор данных), который представляет собой распределенную коллекцию, хранящуюся в памяти на узлах обработки логически это называется разделением. Коллекцию RDD можно сохранить на диск.
Операции преобразования, такие как сопоставление, фильтрация или уменьшение результатом является новый RDD, содержащий преобразованные данные. Это также является следствием того факта, что коллекция RDD неизменна, и, кроме того, операции, составляющие RDD, являются «ленивыми», то есть их выполнение в запрограммированной цепочке происходит только тогда, когда выполняется следующая операция, которая не возвращает RDD. К сожалению, API доступен только для scala и java, и только некоторые операции возможны из python или R.
Операции, выполняемые с RDD, выполняются в контексте Spark -SparkContext.
Модуль Spark SQL
Spark SQL упрощает работу со структурированными данными. Модуль использует новую структуру для хранения данных, которая называется DataFrame. Это набор данных (DataSet), основанный на RDD, но данные организованы в именованные столбцы, аналогично структуре таблиц в базах данных.
Преобразование данных в файл DataFrame может быть выполнено на основе файла структурированных данных, таблицы из куста, таблицы из внешних баз данных или существующего RDD и возможно из любого поддерживаемого языка.
Обработка в Spark SQL может выполняться как с помощью запросов sql, так и с помощью функций.