ТЕХНОЛОГИЯ ЭКСПЕДИА ГРУПП - ДАННЫЕ
Почему Spark работает лучше, чем Hadoop?
Сравнительный анализ двух механизмов обработки данных, Hadoop и Spark.

Что такое Spark?

Это быстрый универсальный движок для крупномасштабной обработки данных. Spark - это механизм выполнения, который может выполнять быстрые вычисления на больших наборах данных.
Spark против Hadoop
В этом разделе мы увидим, чем Hadoop и Spark отличаются с точки зрения скорости, хранения и управления ресурсами.
Что такое Hadoop?

Hadoop состоит из двух основных компонентов: HDFS и MapReduce. HDFS обеспечивает надежное и масштабируемое решение для хранения больших наборов данных. MapReduce - это модель программирования, которая помогает при вычислении больших данных.
Spark запускает программы до 100 раз быстрее, чем Hadoop MapReduce при работе в памяти, или в 10 раз быстрее при запуске на диске. Но это сравнение проводится путем запуска итеративных моделей машинного обучения на обоих. Таким образом, фактическая производительность может зависеть от варианта использования. При этом Spark определенно является движком, который можно использовать при работе с моделями машинного обучения. А с библиотекой ML-Lib это идеальный инструмент для специалистов по данным.
Но Hadoop не устареет со временем, поскольку у них обоих разные приложения, или мы просто не можем предпочесть одно другому, это во многом зависит от варианта использования и приложения.
Почему Spark быстрый?

Он имеет расширенный механизм выполнения DAG, который поддерживает ациклический поток данных и выполнение в памяти.
Место хранения?

Spark использует существующие распределенные файловые системы, такие как Hadoop HDFS, или решения облачного хранения, такие как AWS S3, или даже базы данных больших данных, такие как Cassandra и т. Д., Для больших наборов данных. Spark также может считывать данные из локальной файловой системы, но это не идеально, поскольку означает, что нам нужно сделать данные доступными на всех узлах кластера.
Уменьшение карты?
MapReduce состоит из трех основных этапов. то есть сопоставить, уменьшить и перемешать.

MapReduce - это модель программирования, которая была впервые разработана Google для облегчения распределенных вычислений больших наборов данных. Spark также использует концепции MapReduce. Цель Spark заключалась не в замене парадигмы MapReduce, а в замене ее реализации в Hadoop на более быструю и эффективную.
Одна из основных причин его скорости заключается в том, что он выполняет обработку данных в памяти.
Управление ресурсами?
При использовании Hadoop, когда вы хотите запустить задание MapReduce, вам понадобится кластер Hadoop для его выполнения. Он использует YARN для управления ресурсами. Приложение в Hadoop согласовывает с YARN ресурсы, необходимые для выполнения.
С другой стороны, Spark поставляется со встроенным управлением ресурсами, поэтому ему не требуется YARN для управления кластерами, узлами или памятью.
Кластер Hadoop не требуется для запуска заданий Spark, мы можем запускать его полностью независимо. У нас может быть кластер Hadoop для запуска HDFS и другой кластер для выполнения заданий Spark, но для этого потребуется больше работы по настройке и настройке. Второй недостаток заключается в том, что каждый раз, когда задание будет нуждаться в копировании данных из кластера Hadoop в кластер Spark, поскольку нет локальности данных, а перемещение данных по сети увеличивает задержку. Таким образом, имеет смысл запустить искровое задание в том же кластере, что и HDFS. Таким образом, Spark может также использовать YARN Hadoop для управления ресурсами вместо использования готового менеджера ресурсов.
Теперь перейдем к делу!

Spark расширяет возможности стека Hadoop и не заменяет его. Основная задача Spark - ускорить вычисления. Таким образом, вы можете преобразовать свои задания Hadoop MapReduce в задания Spark.
Какую проблему пытается решить Spark?
Теперь давайте посмотрим, в каких случаях лучше всего работает Spark.
Spark решает проблему неэффективности в двух областях: итеративное машинное обучение и интерактивный анализ данных.
Что такое итеративная обработка?
Это относится к многократному выполнению задания MapReduce или, проще говоря, многократному повторению наборов данных для получения желаемого результата. Алгоритмы обработки графиков, ранжирование страниц и логистическая регрессия - некоторые из примеров итеративного интеллектуального анализа данных и алгоритмов машинного обучения.
В Hadoop, когда мы пишем задание MapReduce, на каждой итерации оно будет считывать данные с диска и записывать временные данные обратно на диск. Итак, проблема здесь в том, что чтение исходных данных и запись промежуточных выходных данных обратно на диск неизбежны, потому что вам нужно где-то сохранить эти временные данные. Чем больше промежуточных данных вы читаете / записываете, тем медленнее будет ваше выполнение.
Spark оптимизирует это, сохраняя промежуточные данные в памяти, а не на диске. Конечно, нам нужно будет убедиться, что в кластере достаточно памяти. Благодаря этому Spark быстрее обрабатывает данные.
А как насчет интерактивного интеллектуального анализа данных?
Для выполнения интерактивного интеллектуального анализа данных вам понадобится богатый набор функций, которые позволят вам выполнять другой набор операций с наборами данных, и Spark предлагает для этой цели ряд встроенных функций.
С традиционным MapReduce вам нужно попытаться вписать свою логику в программы mapper и reducer, и это иногда кажется ограничением. Но Spark предоставляет вам некоторые встроенные операторы, которые можно использовать для выполнения большинства задач преобразования данных.
А во-вторых, при выполнении интеллектуального анализа данных у вас есть большие наборы данных со слишком большим количеством функций, поэтому Spark помогает нам ускорить вычисления и получить результаты за короткое время.
Ссылка
Вы можете обратиться к этому совершенно бесплатному курсу: Spark Starter Kit, чтобы узнать больше и начать путешествие по Spark.
Надеюсь, в этом посте вы узнали что-то о том, почему и где использовать Spark. Пожалуйста, оставьте отзыв в разделе комментариев или хлопайте в ладоши. Я обязательно расскажу подробнее о различных компонентах Spark в следующих блогах.