machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Руководство для начинающих по Apache Spark

Дата публикации Feb 24, 2019

Apache Spark против Hadoop MapReduce - плюсы, минусы и когда использовать какие

Что такое Apache Spark?

Компания, основанная создателями Spark - Databricks - суммирует ее функциональность лучше всего в ихНежное введение в книгу Apache Spark(Настоятельно рекомендуется прочитать - ссылка на скачивание PDF приведена в конце этой статьи.):

«Apache Spark - это унифицированный вычислительный движок и набор библиотек для параллельной обработки данных на компьютерных кластерах. На момент написания этой статьи Spark - наиболее активно разработанный движок с открытым исходным кодом для этой задачи;что делает его инструментом де-факто для любого разработчика или ученого, интересующегося большими данными, Spark поддерживает несколько широко используемых языков программирования (Python, Java, Scala и R), включает в себя библиотеки для различных задач, от SQL до потоковой передачи и машинного обучения, и работает в любом месте - от ноутбука до кластера из тысяч серверов.Это облегчает запуск системы и масштабирование до обработки больших данных в невероятно большом масштабе.«.

Что такое большие данные?

Давайте посмотрим на широко используемое определение больших данных в Gartner, чтобы позже понять, как Spark решает множество задач, связанных с работой с большими данными в реальном масштабе времени:

«Большие данные - это большие объемы, высокоскоростные и / или разнообразные информационные активы, которые требуют экономически эффективных, инновационных форм обработки информации, обеспечивающих более глубокое понимание, принятие решений и автоматизацию процессов».

Сложный мир больших данных

Заметка:Ключевым выводом здесь является то, что «большие» в больших данных - это не только объем. Вы не только получаете много данных, но и быстро получаете их в режиме реального времени, в сложном формате и из различных источников. Отсюда 3-х больших данных -Объем, Скорость, Разнообразие.

Почему большинство компаний Big Data Analytics получают «искорку в глазах», когда слышат о всех полезных функциях Spark?

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

  1. Spark - это единый универсальный магазин для работы с большими данными.- «Spark предназначен для поддержки широкого спектра задач анализа данных, начиная от простой загрузки данных и запросов SQL до машинного обучения и потоковых вычислений, с использованием одного и того же вычислительного механизма и с единым набором API. Основное понимание этой цели заключается в том, что реальные задачи анализа данных - будь то интерактивная аналитика в инструменте, таком как ноутбук Jupyter, или традиционная разработка программного обеспечения для производственных приложений - имеют тенденцию объединять множество различных типов обработки и библиотек. Единый характер Spark делает эти задачи более простыми и эффективными для написания »(Электронная книга Databricks). Например, если вы загружаете данные, используя SQL-запрос, а затем оцениваете модель машинного обучения, используя библиотеку Spark ML, механизм может объединить эти шаги в одно сканирование данных. Более того,Ученые данныхможет принести пользуиз унифицированного набора библиотек (например, Python или R) при выполнении моделирования, иВеб-разработчики могут извлечь выгодуиз унифицированных структур, таких как Node.js или Django.
  2. Spark оптимизирует ядро ​​для эффективности вычислений- «под этим мы подразумеваем, что Spark обрабатывает только загрузку данных из систем хранения и выполняет вычисления на них, а не постоянное хранилище как самоцель. Spark можно использовать с широким спектром систем постоянного хранения, включая облачные системы хранения, такие как Azure Storage и Amazon S3, распределенные файловые системы, такие как Apache Hadoop, хранилища значений ключей, такие как Apache Cassandra, и шины сообщений, такие как Apache Kafka. Однако Spark не хранит данные в долгосрочной перспективе и не поддерживает ни одного из них. Ключевой мотивацией здесь является то, что большая часть данных уже находится в сочетании систем хранения. Перемещение данных обходится дорого, поэтому Spark фокусируется на выполнении вычислений над данными, независимо от того, где они находятся »(Электронная книга Databricks). Внимание Spark к вычислениям отличает его от более ранних программных платформ для больших данных, таких как Apache Hadoop. В состав Hadoop входила как система хранения (файловая система Hadoop, предназначенная для недорогого хранения через кластеры из стандартных серверов Spining 4), так и вычислительная система (MapReduce), которые были тесно интегрированы друг с другом. Однако этот выбор затрудняет запуск одной из систем без другой или, что более важно, для написания приложений, которые получают доступ к данным, хранящимся где-либо еще. Хотя Spark хорошо работает с хранилищем Hadoop, теперь он широко используется в средах, где архитектура Hadoop не имеет смысла, таких как общедоступное облако (где хранилище можно приобрести отдельно от вычислений) или потоковые приложения.
  3. Библиотеки Spark предоставляют ему очень широкий спектр функций- Сегодня стандартные библиотеки Spark являются основной частью проекта с открытым исходным кодом. Сам ядро ​​Spark мало изменилось с момента его первого выпуска, но библиотеки расширились, чтобы предоставлять все больше и больше типов функциональности, превращая его в многофункциональный инструмент анализа данных. Spark включает в себя библиотеки для SQL и структурированных данных (Spark SQL), машинного обучения (MLlib), потоковой обработки (Spark Streaming и более новую структурированную потоковую передачу) и анализа графиков (GraphX). Помимо этих библиотек, существуют сотни внешних библиотек с открытым исходным кодом - от коннекторов для различных систем хранения до алгоритмов машинного обучения.

Apache Spark против Hadoop MapReduce… Какой из них использовать?

Короткий ответ - это зависит от конкретных потребностей вашего бизнеса, но, исходя из моих исследований, кажется, что ответ будет 7 из 10 раз - Spark.Линейная обработка огромных наборов данныхПреимущество Hadoop MapReduce, в то время как Spark обеспечиваетбыстрая производительность,итерационная обработка,аналитика в реальном времени, обработка графиков, машинное обучение и многое другое,

Хорошая новость заключается в том, что Spark полностью совместим с экосистемой Hadoop и бесперебойно работает сРаспределенная файловая система Hadoop (HDFS), Apache Hive и другие. Таким образом, когда размер данных слишком велик для обработки Spark в памяти, Hadoop может помочь преодолеть это препятствие благодаря своей функциональности HDFS. Ниже приведен наглядный пример того, как Spark и Hadoop могут работать вместе:

https://www.quora.com/What-is-the-difference-between-Hadoop-and-Spark

Изображение выше демонстрирует, как Spark использует лучшие части Hadoop черезHDFSдля чтения и хранения данных,Уменьшение картыдля дополнительной обработки иПРЯЖАдля распределения ресурсов.

Далее я попытаюсь осветить многие преимущества Spark по сравнению с Hadoop MapReduce, выполнив краткоенепосредственное сравнениемежду двумя,

Источник:https://data-flair.training/blogs/spark-vs-hadoop-mapreduce/

скорость

  • Apache Spark -молниеноснокластервычислительный инструмент. Spark запускает приложения доВ 100 раз быстрее в памяти и в 10 раз быстрее на диске, чем Hadoopуменьшаяколичество циклов чтения-записи на диск и хранения промежуточных данных в памяти.
  • Hadoop MapReduce- Уменьшение картычитает и пишет с диска, что замедляетскорость обработки и общая эффективность.

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

  • Apache Spark- Многочисленные библиотеки Spark облегчают выполнение множества крупных высокоуровневых операторов сRDD (устойчивый распределенный набор данных),
  • Hadoop- В MapReduce разработчики должны вручную кодировать каждую операцию, что может усложнить ее использование в сложных масштабных проектах.

Обработка больших наборов данных

  • Apache Spark- поскольку Spark оптимизирован для скорости и эффективности вычислений благодаря хранению большей части данных в памяти, а не на диске,он может уступать Hadoop MapReduceкогда размер данных становится настолько большим, что проблема становится недостаточной,
  • Hadoop- Hadoop MapReduce позволяет параллельную обработку огромных объемов данных. Он разбивает большой кусок на более мелкие, которые обрабатываются отдельно на разных узлах данных. Если результирующий набор данных больше доступной оперативной памяти, Hadoop MapReduce может опередить Spark.Это хорошее решение, если скорость обработки не критичнаи задачи можно оставить на ночьчтобы получить результаты утром.

функциональность

Apache Sparkявляется бесспорным победителем в этой категории. Ниже приведен список многих задач Big Data Analytics, в которых Spark превосходит Hadoop:

  • Итерационная обработка.Если задача состоит в том, чтобы обрабатывать данные снова и снова - Spark побеждает Hadoop MapReduce. Устойчивые распределенные наборы данных (RDD) Spark позволяют выполнять несколько операций с картами в памяти, а Hadoop MapReduce должен записывать промежуточные результаты на диск.
  • Практически в режиме реального времени обработки.Если бизнес нуждается в немедленном понимании, то он должен выбрать Spark и его обработку в памяти.
  • Обработка графиков.Вычислительная модель Spark хороша для итерационных вычислений, типичных для обработки графиков. А в Apache Spark есть GraphX ​​- API для вычисления графиков.
  • Машинное обучение, В Spark есть MLlib - встроенная библиотека машинного обучения, в то время как Hadoop нужен сторонний разработчик. MLlib имеет готовые алгоритмы, которые также работают в памяти.
  • Присоединение наборов данных.Из-за своей скорости Spark может создавать все комбинации быстрее, хотя Hadoop может быть лучше, если требуется объединение очень больших наборов данных, которые требуют много перемешивания и сортировки.

Ниже приведено краткое описание многих возможностей Spark и его совместимости с другими движками больших данных и языками программирования:

источник:https: //www.quora ком / Is-Искра-а-компонент-оф-Hadoop-экосистемы
  1. Spark CoreSpark Core - базовый движок для крупномасштабной параллельной и распределенной обработки данных. Кроме того, дополнительные библиотеки, которые построены поверх ядра, допускают разнообразные рабочие нагрузки для потоковой передачи, SQL и машинного обучения. Он отвечает за управление памятью и устранение неисправностей, планирование, распределение и мониторинг заданий в кластере и взаимодействие с системами хранения.
  2. Управление кластером- Менеджер кластера используется для получения ресурсов кластера для выполнения заданий. Ядро Spark работает с различными менеджерами кластеров, включая Hadoop YARN, Apache Mesos, Amazon EC2 и встроенный в Spark менеджер кластеров. Диспетчер кластеров управляет совместным использованием ресурсов между приложениями Spark. С другой стороны, Spark может обращаться к данным в HDFS, Cassandra, HBase, Hive, Alluxio и любом источнике данных Hadoop.
  3. Spark Streaming- Spark Streaming - это компонент Spark, который используется для обработки потоковых данных в реальном времени.
  4. Spark SQLSpark SQL - это новый модуль в Spark, который объединяет реляционную обработку с API функционального программирования Spark. Он поддерживает запросы данных либо через SQL, либо через Hive Query Language. API-интерфейсы DataFrame и Dataset в Spark SQL обеспечивают более высокий уровень абстракции для структурированных данных.
  5. Graphx: GraphX ​​- это Spark API для графов и параллельных вычислений. Таким образом, он расширяет Spark RDD с помощью графа отказоустойчивых распределенных свойств.
  6. MLlib(Машинное обучение): MLlib расшифровывается как Библиотека машинного обучения. Spark MLlib используется для выполнения машинного обучения в Apache Spark.

Вывод

Благодаря огромному взрыву больших данных и экспоненциально возрастающей скорости вычислительной мощности, такие инструменты, как Apache Spark и другие механизмы Big Data Analytics, скоро станут незаменимыми для специалистов по обработке данных и быстро станут отраслевым стандартом для анализа больших данных и решения сложных бизнес-задач. в масштабе в режиме реального времени. Для тех, кто заинтересован углубиться в технологии, лежащие в основе всех этих функций, пожалуйста, нажмите на ссылку ниже и загрузите электронную книгу Databricks - «Нежное введение в Apache Spark »,или проверить «Аналитика больших данных в Apache Spark »ниже,

Нежное введение в Apache Spark ™

Изменить описание

pages.databricks.com

Аналитика больших данных на Apache Spark

Apache Spark стал де-факто платформой для анализа больших данных благодаря своей усовершенствованной модели программирования в памяти…

link.springer.com

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map