Ядро Apache Spark - это базовый механизм выполнения платформы Spark. Все остальные функции построены на этом движке. Он не только предоставляет функции вычисления памяти для повышения скорости, но также предоставляет общую модель выполнения для поддержки различных приложений. Кроме того, пользователи могут использовать Java, Scala и Python API для разработки приложений. Ядро Spark построено на унифицированном абстрактном RDD, который позволяет интегрировать различные компоненты Spark по желанию, а различные компоненты могут использоваться в одном приложении для выполнения сложных задач обработки больших данных.

Что такое RDD

RDD (Resilient Distributed Datasets) изначально был разработан для решения проблемы, заключающейся в том, что некоторые существующие вычислительные платформы неэффективны при обработке двух типов сценариев приложений, а именно итерационных алгоритмов и интерактивного интеллектуального анализа данных . В обоих сценариях приложений, сохраняя данные в памяти, можно повысить производительность на несколько порядков. Для итерационных алгоритмов, таких как PageRank, кластеризация K-средних, логистическая регрессия и т. Д., Часто требуется повторно использовать промежуточные результаты. Другой сценарий приложения - это интерактивный анализ данных, например выполнение нескольких специальных запросов к одному и тому же набору данных. В вычислительных средах, таких как Hadoop, промежуточные результаты вычислений должны сохранять их на внешнем запоминающем устройстве (например, HDFS), что увеличивает дополнительные усилия по репликации данных, дисковым операциям ввода-вывода и сериализации. Это увеличит нагрузку на приложение.

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

Основная концепция

RDD содержит коллекцию распределенных объектов, которая представляет собой секционированную коллекцию записей только для чтения. Каждый RDD можно разделить на несколько разделов, и разные разделы хранятся на разных узлах кластера. RDD - это модель общей памяти с жесткими ограничениями, то есть RDD - это коллекция записей раздела только для чтения, поэтому ее нельзя изменить. Существует два метода создания RDD: один - это создание RDD на основе физически хранимых данных, а другой - создание нового RDD с помощью операций преобразования, таких как отображение, фильтр, соединение.

  1. Spark написан на языке scala. Если вы хотите хорошо изучить Spark, вы должны изучить и проанализировать его исходный код.
  2. Написание программ Spark на языке scala относительно просто и удобно, кратко и эффективнее, чем на Java.

Apache Spark - это быстрый, универсальный, масштабируемый, отказоустойчивый механизм анализа больших данных итеративных вычислений на основе памяти. Во-первых, подчеркивается, что Spark в настоящее время является вычислительным механизмом, который обрабатывает данные, а не системой хранения.

Spark RDD и Spark SQL

Spark RDD и Spark SQL в основном используются в автономных сценариях, Spark RDD может обрабатывать структурированные или неструктурированные данные, но Spark SQL обрабатывает структурированные данные и внутренне обрабатывает распределенные наборы данных с помощью наборов данных.

потоковая передача искр и структурированная потоковая передача

Он используется для потоковой передачи, но подчеркивается, что потоковая передача Spark основана на микропакетной обработке данных. Несмотря на то, что структурированная потоковая передача оптимизирована в реальном времени, в настоящее время по сравнению с потоковой передачей Flink, Storm и Spark это обработка в реальном времени.

MLlib

Используемый для машинного обучения, конечно, pyspark также имеет приложения, основанные на python для обработки данных.

GraphX ​​

Используется для расчета графика

Spark R

Обработка данных и статистический анализ на языке R

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

  • Быстрый
    Spark имеет механизм выполнения DAG, основанный на итеративных вычислениях в памяти и данных обработки. Spark может хранить промежуточные результаты процесса анализа данных в памяти, поэтому нет необходимости повторно читать и записывать данные из внешних систем хранения, что лучше, чем MapReduce. Он подходит для сценариев, требующих итерационных операций, таких как машинное обучение и интеллектуальный анализ данных.
  • Простота использования
    Поддерживает несколько языков, таких как scala, java, python, и R поддерживает несколько расширенных операторов (в настоящее время их более 80), что позволяет пользователям быстро создавать различные приложения; поддерживает интерактивный запрос оболочек, таких как scala и python
  • Общие
    Spark подчеркивает универсальное решение, объединяющее пакетную обработку, потоковую обработку, интерактивные запросы, машинное обучение и графические вычисления, чтобы избежать потери ресурсов, вызванной необходимостью развертывания разных кластеров в нескольких вычислительные сценарии
  • Хорошая отказоустойчивость
    В распределенном вычислительном наборе данных для отказоустойчивости через контрольную точку, когда операция соединения не выполняется, не нужно пересчитывать с начальной контрольной точки в HDFS.
  • Сильная совместимость
    Он может работать в Yarn, Kubernetes, Mesos и других менеджерах ресурсов, реализовывать автономный режим как встроенный планировщик управления ресурсами и поддерживать несколько источников данных.


«Скидки до 60% на лучшие игровые аксессуары и стулья Razer
Предложения к Черной пятнице Найти подарок Бестселлеры Основы Amazon Обслуживание клиентов Новые выпуски Книги Реестр Аптека Мода… amzn .к"