Учебное пособие по Apache Spark для начинающих: изучите Apache Spark на примерах

Опубликовано: 2020-03-26

Оглавление

Введение

Данные есть везде — от журналов клиентов небольшого стартапа до финансовых отчетов огромной многонациональной компании. Компании используют эти сгенерированные данные, чтобы понять, как работает их бизнес и что можно улучшить. Питер Сондергаард, старший вице-президент Gartner Research, сказал, что информация — это масло для 21 -го века, а аналитику можно считать двигателем внутреннего сгорания.

Но по мере роста компаний растут и их клиенты, заинтересованные стороны, деловые партнеры и продукты. Таким образом, объем данных, которые им приходится обрабатывать, становится огромным.

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

Мы углубимся в детали программного обеспечения через введение в Apache Spark .

Что такое Apache Spark?

Apache Spark — это среда кластерных вычислений с открытым исходным кодом . По сути, это система обработки данных , которая используется для обработки огромных рабочих нагрузок и наборов данных. Он может быстро обрабатывать большие наборы данных, а также распределять эти задачи по нескольким системам для снижения рабочей нагрузки. Он имеет простой API, который снижает нагрузку на разработчиков, когда они перегружены двумя терминами — обработка больших данных и распределенные вычисления!

Разработка Apache Spark началась как исследовательский проект с открытым исходным кодом в AMPLab Калифорнийского университета в Беркли Матеем Захария , который считается основателем Spark. В 2010 году по лицензии BSD проект был открыт. Позже в 2013 году он стал инкубационным проектом Apache Software Foundation. В 2014 году он стал одним из лучших проектов компании.

В 2015 году у Spark было более 1000 участников проекта. Это сделало его одним из самых активных проектов в Apache Software Foundation, а также в мире больших данных. С 2009 года проект поддерживают более 200 компаний.

Но к чему все это сумасшествие вокруг Спарка?

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

Он поддерживает широкий спектр баз данных, таких как HDFS Hadoop, Amazon S3 и базы данных NoSQL, такие как MongoDB, Apache HBase, база данных MapR и Apache Cassandra. Он также поддерживает Apache Kafka и MapR Event Store.

Архитектура Apache Spark

Изучив введение Apache Spark, мы теперь узнаем о его структуре. Узнайте больше об архитектуре Apache.

Его архитектура четко определена и состоит из двух основных компонентов:

Устойчивые распределенные наборы данных (RDD)

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

Spark поддерживает два типа RDD:

  • Наборы данных Hadoop, созданные из файлов в HDFS (распределенная файловая система Hadoop) .
  • Параллелизованные коллекции на основе коллекций Scala

RDD можно использовать для двух типов операций:

  • Преобразования — эти операции используются для создания RDD.
  • Действия — они используются для указания Spark выполнить некоторые вычисления и вернуть результат драйверу. Мы узнаем больше о драйверах в следующих разделах.

DAG (направленный ациклический граф)

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

Это ориентированный граф, так как один узел связан с другим. Граф ацикличен, так как в нем нет петли или цикла. После выполнения преобразования он не может вернуться в исходное положение. Преобразование в Apache Spark — это действие, которое преобразует состояние раздела данных из A в B.

Итак, как же работает эта архитектура? Покажи нам.

В архитектуре Apache Spark есть два основных демона и менеджер кластера . Это мастер и рабочий демон . Демон — это программа, которая выполняется как фоновый процесс. Кластер в Spark может иметь много ведомых устройств, но одного главного демона.

Внутри мастер-узла находится программа-драйвер, которая запускает приложение Spark. Интерактивная оболочка, которую вы можете использовать для запуска кода, действует как управляющая программа. Внутри программы-драйвера создается Spark Context. Этот контекст и программа-драйвер выполняют задание с помощью менеджера кластера.

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

Apache Spark: преимущества

Вот преимущества использования Apache Spark :

Скорость

При выполнении заданий данные сначала сохраняются в RDD. Таким образом, поскольку эти данные хранятся в памяти, они быстро доступны, и задание будет выполняться быстрее. Наряду с кэшированием в памяти Spark также оптимизировал выполнение запросов. Благодаря этому аналитические запросы могут выполняться быстрее. Можно получить очень высокую скорость обработки данных. Это может быть в 100 раз быстрее, чем Hadoop для обработки больших объемов данных.

Обработка нескольких рабочих нагрузок

Apache Spark может обрабатывать несколько рабочих нагрузок одновременно. Это могут быть интерактивные запросы, обработка графов, машинное обучение и аналитика в реальном времени. Приложение Spark может легко включать множество рабочих нагрузок.

Простота использования

Apache Spark имеет простые в использовании API для обработки больших наборов данных. Сюда входят более 100 операторов, которые можно использовать для создания параллельных приложений. Эти операторы могут преобразовывать данные, а частично структурированными данными можно манипулировать с помощью API фреймов данных.

Языковая поддержка

Spark — любимец разработчиков, так как он поддерживает несколько языков программирования, таких как Java, Python, Scala и R. Это дает вам несколько вариантов разработки приложений. API-интерфейсы также очень удобны для разработчиков, поскольку они помогают им скрыть сложную технологию распределенной обработки за высокоуровневыми операторами, которые помогают сократить объем необходимого кода.

Эффективность

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

Ленивая оценка увеличивает скорость системы и ее эффективность.

Поддержка сообщества

Будучи одним из крупнейших проектов больших данных с открытым исходным кодом, над ним работают более 200 разработчиков из разных компаний. В 2009 году сообщество было основано и с тех пор растет. Итак, если вы столкнулись с технической ошибкой, вы, скорее всего, найдете решение в Интернете, опубликованное разработчиками.

Вы также можете найти много внештатных или штатных разработчиков, готовых помочь вам в вашем проекте Spark.

Потоковая передача в реальном времени

Spark известен потоковой передачей данных в реальном времени . Это стало возможным благодаря Spark Streaming, который является расширением основного API Spark. Это позволяет специалистам по данным обрабатывать данные в режиме реального времени из различных источников, таких как Amazon Kinesis и Kafka . Затем обработанные данные могут быть переданы в базы данных, файловые системы и информационные панели.

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

Приложения Apache Spark

После ознакомления с Apache Spark и его преимуществами мы узнаем больше о его различных приложениях:

Машинное обучение

Способность Apache Spark хранить данные в памяти и многократно выполнять запросы делает его хорошим вариантом для обучения алгоритмов машинного обучения. Это связано с тем, что повторное выполнение одинаковых запросов сократит время, необходимое для определения наилучшего возможного решения.

Библиотека машинного обучения Spark (MLlib) может выполнять расширенные аналитические операции, такие как прогнозный анализ, классификация, анализ настроений, кластеризация и уменьшение размерности.

Интеграция данных

Данные, которые создаются в различных системах внутри организации, не всегда являются чистыми и организованными. Spark — очень эффективный инструмент для выполнения операций ETL с этими данными. Это означает, что он выполняет, извлекает, преобразует и загружает операции для извлечения данных из разных источников, их очистки и организации. Затем эти данные загружаются в другую систему для анализа.

Интерактивный анализ

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

Туманные вычисления

Мы знаем, что IoT (Интернет вещей) имеет дело с большим количеством данных, поступающих от различных устройств, оснащенных датчиками. Это создает сеть взаимосвязанных устройств и пользователей. Но по мере того, как сеть IoT начинает расширяться, возникает потребность в системе распределенной параллельной обработки.

Итак, обработка данных и децентрализованное хранение выполняются через Fog Computing вместе со Spark . Для этого Spark предлагает мощные компоненты, такие как Spark Streaming, GraphX ​​и MLlib. Узнайте больше о приложениях apache spark.

Заключение

Мы узнали, что Apache Spark быстрый, эффективный и многофункциональный. Вот почему такие компании, как Huawei, Baidu, IBM, JP Morgan Chase, Lockheed Martin и Microsoft, используют его для ускорения своего бизнеса. В настоящее время она известна в различных областях, таких как розничная торговля, бизнес, финансовые услуги, управление здравоохранением и производство.

По мере того, как мир становится все более зависимым от данных, Apache Spark в будущем останется важным инструментом для обработки данных.

Если вам интересно узнать больше о больших данных, ознакомьтесь с нашей программой PG Diploma в области разработки программного обеспечения со специализацией в области больших данных, которая предназначена для работающих профессионалов и включает более 7 тематических исследований и проектов, охватывает 14 языков и инструментов программирования, практические занятия. семинары, более 400 часов интенсивного обучения и помощь в трудоустройстве в ведущих фирмах.

Изучайте онлайн-курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Возглавьте технологическую революцию, основанную на данных

400+ часов обучения. 14 языков и инструментов. Статус выпускника IIIT-B.
Расширенная программа сертификации в области больших данных от IIIT Bangalore