Что делает Spark быстрее, чем MapReduce?

310
11
1
Лучший ответ
344

Я думаю, что есть три основные причины.

Основные две причины проистекают из того факта, что обычно одна запускает не одно задание MapReduce, а скорее набор заданий в последовательности.

1. Одним из основных ограничений MapReduce является то, что он сохраняет полный набор данных в HDFS после выполнения каждого задания. Это очень дорого, потому что он требует в три раза (для репликации) размера набора данных в дисковых операциях ввода-вывода и аналогичного количества сетевых операций ввода-вывода. Spark придерживается более целостного подхода. Когда выходные данные операции необходимо передать в другую операцию, Spark передает данные напрямую, без записи в постоянное хранилище. Это нововведение по сравнению с MapReduce, которое пришло из бумаги Microsoft Dryad и не является оригинальным для Spark.

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

3. Как насчет заданий Spark, которые сводятся к одному заданию MapReduce? Во многих случаях они также работают быстрее на Spark, чем на MapReduce. Основное преимущество Spark заключается в том, что он может запускать задачи намного быстрее. MapReduce запускает новую JVM для каждой задачи, что может занять несколько секунд с загрузкой JAR, JIT, анализом XML конфигурации и т. Д. Spark поддерживает выполнение JVM исполнителя на каждом узле, поэтому запуск задачи - это просто создание RPC для него и передача Runnable в пул потоков, который занимает одну цифру миллисекунд.

Наконец, распространенное заблуждение, вероятно, заслуживающее упоминания, заключается в том, что Spark каким-то образом работает полностью в памяти, а MapReduce - нет. Это просто не тот случай. Реализация Shark в Spark работает очень похоже на MapReduce: каждая запись сериализуется и записывается на диск на стороне карты, а затем извлекается и десериализуется на стороне сокращения.

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
133

Единственный повар, готовящий блюдо, - регулярный компьютер.

Hadoop - это несколько поваров, которые готовят блюдо по кусочкам и позволяют каждому повару приготовить свой кусок.

У каждого повара есть отдельная плита и полка для еды. Первый повар готовит мясо, второй повар готовит соус. Этот этап называется «Карта». В конце главный повар собирает полное блюдо. Это называется «Уменьшить».

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

Для Искры поварам разрешается держать вещи на плите между операциями. Это ускоряет ход вещей.

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
117

Первое, что нужно помнить при сравнении Spark и MapReduce (MR), на мой взгляд, это то, что Spark - намного более новая технология.

MR был разработан в начале и середине 2000-х годов, когда ОЗУ были не такими дешевыми, а большинство процессоров были 32-битными. Таким образом, он был разработан, чтобы сильно полагаться на дисковый ввод-вывод. Spark, с другой стороны (точнее, RDD), был создан в эпоху 64-битных компьютеров, которые могли обрабатывать ТБ ОЗУ, которые стали намного дешевле. Таким образом, Spark - это, прежде всего, технология в памяти и, следовательно, намного быстрее.

Чтобы увидеть это в действии, вы можете выполнить те же вычисления на эквивалентных узлах, один с MR, а другой с Spark. Вы должны увидеть, что при работе с MR много оперативной памяти не используется одновременно, а в Spark использование оперативной памяти в основном максимально.

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

Полное раскрытие: я управляю магазином данных и визуализации данных craftdatalabs.com. Всегда рад помочь всем, кто хочет обсудить Hadoop, Spark и т. Д. И как я их использовал более подробно.

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
90

Следующие вещи делают искру быстрее

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

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
81

Прежде чем сравнивать напрямую, давайте вкратце узнаем о Spark

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

Apache Spark - Spark - молниеносный инструмент для кластерных вычислений. Apache Spark запускает приложения в 100 раз быстрее в памяти и в 10 раз быстрее на диске, чем Hadoop.

Давайте посмотрим на различия между MapReduce и Spark, которые делают скорость Spark лучше, чем Hadoop MapReduce.

В памяти вычислений

Spark уменьшает количество циклов чтения / записи на диск, а хранение промежуточных данных в памяти Spark делает это возможным.

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

Spark In-Memory Computing - Руководство для начинающих

Hadoop MapReduce - MapReduce считывает и записывает с диска, в результате замедляется скорость обработки.

2. С помощью процессора обработки на основе DAG

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

3. Spark может кэшировать частичные или полные данные в памяти, что позволяет избежать большого количества дисковых операций ввода-вывода.

Для получения дополнительной информации см. Ссылку ниже:

Spark против Hadoop MapReduce

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
55

Одним из основных отличий между Spark и MapReduce является то, как они обрабатывают данные. Spark делает все в памяти, пока MR сохраняет данные на диске после сопоставления или сокращения заданий. Таким образом, по любому стандарту Spark может превзойти MR довольно легко.

Таким образом, если у вас достаточно памяти для размещения данных, Spark будет работать лучше, чем Mapreduce.

И это можно четко наблюдать на соревнованиях Daytons GraySort 2014 года (сортировка данных по 100 ТБ). Spark выполнил задачу в 3 раза быстрее, используя только 10-е оборудование по сравнению с Mapreduce.

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

Итак, по сути, мы можем сказать, что Spark работает быстрее, чем MR, когда речь идет об обработке одного и того же объема данных несколько раз, а не о выгрузке и загрузке новых данных.

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

Daytona GraySort: Spark - самый быстрый движок с открытым исходным кодом для сортировки петабайта

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
54

В памяти возможности Spark делают это быстрее. MapReduce записывает промежуточные результаты обратно на диск и считывает их обратно, поэтому в одном MapReduce данные многократно записываются на диск и читаются. Чтение с диска - худший враг времени для обработки данных. Таким образом, Spark использует возможности памяти и сохраняет данные в памяти во время обработки данных. Очень простой пример может быть как например (я думаю, что это не будет аккуратным, но может прояснить ситуацию)

z = (a + b) * c

MapReduce будет обрабатываться следующим образом

Считать a, b с диска. A + b записать результат на диск, прочитать промежуточные результаты с диска и c обработать данные и записать данные обратно на диск.

Spark обработает следующим образом

Считайте a и b из процесса на диске (a + b) и сохраните результат в памяти, получите c с диска и обработайте результат записи окончательного результата обратно на диск

Обратите внимание, потому что промежуточные результаты хранятся в памяти, что делает Spark быстрее.

Но, конечно же, вам нужно больше памяти, чтобы воспользоваться преимуществами искры, которая стоит дорого, иначе она будет так же хороша, как MapReduce или хуже, чем MapReduce.

Система программного обеспечения для юридических лиц

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
49

Существуют различные факторы, которые делают Spark быстрее, чем MapReduce. Говорят, что Spark в 100 раз быстрее MapReduce Hadoop. Вот некоторые из факторов, которые делают его очень быстрым:

Обработка в памяти

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

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

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

Вы также можете прочитать эту статью. В чем разница между Hadoop и Spark? узнать больше о факторах, определяющих скорость Spark.

Если у вас есть какие-либо вопросы о больших данных, пожалуйста, отправьте мне сообщение.

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
45

Основная причина в том, что Spark использует в кластере вычислительную технику, называемую RDD.
Таким образом, он максимально использует ОЗУ, когда mapreduce записывает промежуточные данные на диск, что приводит к дорогостоящим операциям ввода-вывода.

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
38

Основная причина того, что Apache Spark быстрее MapReduce:

Вычисления в памяти: В вычислениях в памяти данные находятся в оперативной памяти, а не на медленных дисках, и обрабатываются параллельно. Используя это, мы обнаруживаем паттерн, анализируем большие данные. Это популярно, потому что это снижает стоимость памяти. Таким образом, обработка в памяти экономична для приложений. Две основные части вычислений в памяти - память RAM. Параллельная распределенная обработка.

Основная абстракция Apache Spark - это его RDD. И RDD кэшируются с помощью метода cache () или persist (). Когда мы используем метод cache (), все СДР хранятся в памяти. Когда RDD сохраняет значение в памяти, данные, которые не помещаются в памяти, либо пересчитывают, либо отправляют избыточные данные на диск. Всякий раз, когда мы хотим RDD, его можно извлечь, не переходя на диск.

Поддержка DAG: DAG позволяет пользователю исследовать стадию и подробно раскрывать детали на любой стадии. В виде этапа раскрываются подробности всех СДР, принадлежащих этому этапу. Планировщик разбивает Spark RDD на этапы, основанные на различных применяемых преобразованиях. Каждый этап содержит задачи, основанные на разделах СДР, которые выполняют одинаковые вычисления параллельно.

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
33

Каковы преимущества Spark по сравнению с MapReduce?

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
38

Согласно Atscale в «Будущее Hadoop: Spark», есть несколько преимуществ:

1. RDD - Spark представляет концепцию эластичных распределенных наборов данных (RDD) и обеспечивает очень простой способ хранения данных в памяти.

2. Интерактивная оболочка - команды ввода различны, и в результате у вас значительно меньше кода, даже в 2-5 раз меньше.

3. Spark заменяет движок MySQL

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
41

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

Посетите эту ссылку: Big Data Hadoop, Spark, Storm, Scala - Комбинированные учебные классы онлайн | Big Data Hadoop, Spark, Storm, Scala - комбинированные курсы в режиме онлайн Основная задача аналитики больших данных - помочь компаниям принимать более обоснованные бизнес-решения, позволяя DATA Scientist, специалистам по прогнозированию и другим специалистам по аналитике анализировать большие объемы данных транзакций, а также как и другие формы данных, которые могут не использоваться обычными программами бизнес-аналитики (BI). Сюда могут входить журналы веб-сервера и данные интернет-клика, данные социальных сетей и отчеты об активности в социальных сетях, текстовые сообщения из электронных писем клиентов и ответы на опросы, подробные записи телефонных звонков и машинные данные, полученные датчиками, подключенными к Интернету. большие данные с полуструктурированными и неструктурированными данными такого рода, но консалтинговые фирмы, такие как Gartner Inc. и Forrester Research Inc., также считают транзакции и другие структурированные данные действительными компонентами приложений для анализа больших данных.

Большие данные можно анализировать с помощью программных инструментов, обычно используемых в рамках таких дисциплин, как Predective Analysis Data Mining, Text Analytics и Static Method. Основное программное обеспечение BI и инструменты визуализации также могут играть роль в процессе анализа. Но полуструктурированные и неструктурированные данные могут не вписаться в традиционное хранилище данных на основе реляционной базы данных. Кроме того, хранилища данных могут не справиться с требованиями обработки, обусловленными наборами больших данных, которые необходимо часто или даже постоянно обновлять, например, данными в реальном времени о производительности мобильных приложений или нефте- и газопроводов. В результате многие организации, стремящиеся собирать, обрабатывать и анализировать большие данные, обратились к новому классу технологий, который включает Hadoop и связанные с ним инструменты, такие как Yarn Spook, Spark и Pig, а также базы данных No Sql. Эти технологии составляют ядро ​​программной среды с открытым исходным кодом, которая поддерживает обработку больших и разнообразных наборов данных в кластерных системах.

В некоторых случаях системы Hadoop Cluster и No SQL используются в качестве посадочных площадок и промежуточных площадок для данных перед их загрузкой в ​​хранилище данных для анализа, часто в обобщенной форме, более подходящей для реляционных структур. Тем не менее, поставщики больших данных все чаще продвигают концепцию Hadoop Data Take, которая служит центральным хранилищем для входящих потоков организации необработанных данных. В таких архитектурах подмножества данных затем могут быть отфильтрованы для анализа в хранилищах данных и базах данных Google Analytics, или они могут быть проанализированы непосредственно в Hadoop с использованием инструментов пакетного запроса, программного обеспечения для потоковой обработки и технологий Sql AND Hdoop, которые выполняют интерактивные специальные запросы, написанные в Sql Потенциальные ловушки, которые могут сбить организации с толку в инициативах по анализу больших данных, включают в себя отсутствие навыков внутренней аналитики и высокую стоимость найма опытных специалистов по аналитике. Объем обычно используемой информации и ее разнообразие также могут вызывать проблемы с управлением данными, в том числе качество данных и проблемы согласованности. Кроме того, интеграция систем Hadoop и хранилищ данных может быть сложной задачей, хотя в настоящее время различные поставщики предлагают программные соединители между Hadoop и реляционными базами данных, а также другие инструменты интеграции данных с возможностями больших данных.

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

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

Своевременное понимание огромного количества данных. К ним относятся те, которые уже хранятся в базах данных компании, из внешних сторонних источников, Интернета, социальных сетей и удаленных датчиков. Мониторинг в режиме реального времени и прогнозирование событий, влияющих на производительность или операции бизнеса. Возможность поиска, сбора, извлечения, манипулирования, анализа, подключения и визуализации данных с помощью инструментов выбора (SAP HANA, SAP Sybase®, SAP Intelligence Analysis for Public Sector применение Palantir, Kapow®, Hadoop). Конвергенция решения BDI для разнообразия со скоростью SAP HANA для скорости Возможность Hadoop для томов управлять большими объемами данных, как в облаке, так и вне его, с проверкой и проверкой. Выявление важной информации, способной повысить качество решений. Снижение рисков за счет более быстрой оптимизации сложных решений незапланированных событий. Адресация скорости и масштабируемости, мобильности и безопасности, гибкости и стабильности. Интеграция как структурированных, так и неструктурированных данных. Время реализации информации крайне важно для извлечения ценности из Различные источники данных, включая мобильные устройства, радиочастотную идентификацию (RFID), Интернет и растущий список автоматизированных сенсорных технологий, SAP HANA обеспечивает чрезвычайно ускоренное бизнес-хранилище / корпоративное хранилище данных (BW / EDW). Hadoop обеспечивает надежное хранение данных и высокопроизводительную параллельную обработку данных - возможность хранить очень большие наборы данных. Облако является расширяемым, гибким, масштабируемым, гибким, самовосстанавливающимся, по требованию и т. Д. И предоставляет недорогую аппаратную / программную платформу для всех приложений (таких как Kapow, приложение SAP Intelligence Analysis для государственного сектора от Palantir, CRM, SAP Sybase IQ, SAP Data Services с текстовой аналитикой) для быстрого наращивания при более низких требованиях к капитальным затратам.

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

Этот краткий учебник представляет собой краткое введение в большие данные, алгоритм Map Reduce и распределенную файловую систему Hadoop.

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

Общее Hadoop: Это библиотеки Java и утилиты, необходимые для других модулей Hadoop. Эти библиотеки предоставляют абстракции уровня файловой системы и уровня ОС и содержат необходимые файлы Java и сценарии, необходимые для запуска Hadoop. Hadoop YARN: это основа для планирования заданий и управления ресурсами кластера. Распределенная файловая система Hadoop (HDFS ™): распределенная файловая система, обеспечивающая высокопроизводительный доступ к данным приложения. Hadoop MapReduce: это основанная на YARN система для параллельной обработки больших наборов данных.

Hadoop MapReduce - это программная среда для простого написания приложений, которые параллельно обрабатывают большие объемы данных на больших кластерах (тысячах узлов) аппаратного обеспечения Commodity надежным и отказоустойчивым способом.

Термин MapReduce фактически относится к следующим двум различным задачам, которые выполняют программы Hadoop:

Задача «Карта»: это первая задача, которая берет входные данные и преобразует их в набор данных, где отдельные элементы разбиваются на кортежи (пары ключ / значение). Задача сокращения: эта задача принимает выходные данные задачи карты в качестве входных данных и объединяет эти кортежи данных в меньший набор кортежей. Задача сокращения всегда выполняется после задачи карты.

Обычно и вход, и выход хранятся в файловой системе. Фреймворк заботится о планировании задач, контролирует их и повторно выполняет сбойные задачи.

Каркас MapReduce состоит из одного главного JobTracker и одного подчиненного TaskTracker на каждый кластерный узел. Мастер отвечает за управление ресурсами, отслеживание потребления / доступности ресурсов и планирование задач компонентов заданий на ведомых устройствах, мониторинг их и повторное выполнение невыполненных задач. Ведомые TaskTracker выполняют задачи в соответствии с указаниями мастера и периодически предоставляют мастеру информацию о состоянии задачи.

JobTracker является единственной точкой отказа для службы Hadoop MapReduce, которая означает, что если JobTracker выходит из строя, все выполняющиеся задания останавливаются.

Распределенная файловая система Hadoop

Hadoop может работать напрямую с любой монтируемой распределенной файловой системой, такой как Local FS, HFTP FS, S3 FS и другими, но наиболее распространенной файловой системой, используемой Hadoop, является распределенная файловая система Hadoop (HDFS).

Распределенная файловая система Hadoop (HDFS) основана на файловой системе Google (GFS) и предоставляет распределенную файловую систему, предназначенную для надежной и отказоустойчивой работы на больших кластерах (тысячи компьютеров) небольших компьютерных машин.

HDFS использует архитектуру master / slave, где master состоит из одного NameNode, который управляет метаданными файловой системы, и одного или нескольких подчиненных DataNode, в которых хранятся фактические данные.

Файл в пространстве имен HDFS разделен на несколько блоков, и эти блоки хранятся в наборе узлов данных. NameNode определяет отображение блоков на узлы данных. DataNodes заботится о операции чтения и записи с файловой системой. Они также занимаются созданием, удалением и репликацией блоков на основе инструкций, данных NameNode.

HDFS обеспечивает оболочку, как и любую другую файловую систему, и доступен список команд для взаимодействия с файловой системой. Эти команды оболочки будут рассмотрены в отдельной главе вместе с соответствующими примерами.

Как работает Hadoop?

Этап 1

Пользователь / приложение может отправить задание в Hadoop (клиент задания hadoop) для требуемого процесса, указав следующие элементы:

Расположение входных и выходных файлов в распределенной файловой системе. Классы java в виде jar-файла, содержащего реализацию функций map и Reduce. Конфигурирование задания путем установки различных параметров, специфичных для задания.

Этап 2

Затем клиент задания Hadoop отправляет задание (jar / исполняемый файл и т. Д.) И конфигурацию на JobTracker, который затем берет на себя ответственность за распространение программного обеспечения / конфигурации на ведомые устройства, планирование задач и их мониторинг, предоставление статуса и диагностической информации клиенту задания. ,

Этап 3

TaskTrackers на разных узлах выполняют задачу в соответствии с реализацией MapReduce, и выходные данные функции Reduce сохраняются в выходных файлах файловой системы.

Преимущества Hadoop

Hadoop Framework позволяет пользователю быстро писать и тестировать распределенные системы. Он эффективен, он автоматически распределяет данные и работает между компьютерами и, в свою очередь, использует базовый параллелизм ядер ЦП. Hadoop не полагается на аппаратное обеспечение для обеспечения отказоустойчивости и высокой доступности (FTHA), а сама библиотека Hadoop была разработана для обнаружения и обработки сбоев на уровне приложений. Серверы могут быть добавлены или удалены из кластера динамически, и Hadoop продолжает работать без перерыва. Еще одно большое преимущество Hadoop заключается в том, что помимо того, что он является открытым исходным кодом, он совместим со всеми платформами, поскольку он основан на Java.

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
27

Причина, по которой Spark лучше, чем Hadoop Mapreduce:

Спектакль:

Причина, по которой Spark работает быстрее, чем Hadoop, заключается в том, что Spark обрабатывает все в памяти. Он также может использовать диск для данных, которые не все помещаются в память.

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

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

Spark хорошо известен своей производительностью, но он также предоставляет функцию полиглота. Эта функция Spark позволяет пользователю выполнять написание кода на языке Java, Python и языке Scala SQL в соответствии с пользователем http://compability.So пользователь из этого фона не может легко выполнить задачу.

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

Стоимость:

И Spark, и Hadoop являются открытым программным обеспечением и бесплатным программным продуктом, поэтому для него не требуется лицензия. Кроме того, оба продукта предназначены для работы на обычном оборудовании, таком как недорогая система.

Единственное различие в стоимости происходит из-за их различного способа выполнения задачи.

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

Sparks требует много памяти, но может работать со стандартным объемом диска, который работает на стандартных скоростях. Дисковое пространство является относительно недорогим товаром, и поскольку Spark не использует дисковый ввод-вывод для обработки.

Обработка данных:

MapReduce - это механизм пакетной обработки. MapReduce работает последовательно, считывая данные из кластера, выполняя свою работу с данными, записывая результаты обратно в кластер, считывая обновленные данные из кластера, выполняя следующую операцию с данными, записывая эти результаты обратно в кластер и т. Д. , Spark выполняет аналогичные операции, но делает это за один шаг и в памяти. Он считывает данные из кластера, выполняет их работу с данными, а затем записывает их обратно в кластер.

Spark также включает в себя собственную библиотеку вычислений графов GraphX. GraphX ​​позволяет пользователям просматривать те же данные, что и графики и коллекции. Пользователи также могут преобразовывать и объединять графики с помощью устойчивых распределенных наборов данных (RDD), которые обсуждаются в разделе «Отказоустойчивость».

Отказоустойчивость:

Для обеспечения отказоустойчивости MapReduce и Spark решают проблему в двух разных направлениях. MapReduce использует TaskTrackers, которые обеспечивают биение для JobTracker. Если сердцебиение пропущено, то JobTracker перенесет все незавершенные и незавершенные операции на другой TaskTracker. Этот метод эффективен в обеспечении отказоустойчивости, однако он может значительно увеличить время завершения операций, в которых есть даже один сбой.

Spark использует устойчивые распределенные наборы данных (RDD), которые представляют собой отказоустойчивые наборы элементов, с которыми можно работать параллельно. СДР могут ссылаться на набор данных во внешней системе хранения, такой как общая файловая система, HDFS, HBase или любой источник данных, предлагающий Hadoop InputFormat. Spark может создавать RDD из любого источника хранения, поддерживаемого Hadoop, включая локальные файловые системы или одну из перечисленных ранее.

Масштабируемость

По определению, и MapReduce, и Spark масштабируются с использованием HDFS.

Совместимость:

Spark может быть развернут на различных платформах. Он работает в Windows и UNIX (например, Linux и Mac OS) и может быть развернут в автономном режиме на одном узле, если у него есть поддерживаемая ОС. Spark также можно развернуть в узле кластера в Hadoop YARN, а также в Apache Mesos.

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
25

Map Reduce - это механизм обработки Apache Hadoop, который был напрямую получен из Google Map Reduce. Приложение Map Reduce написано в основном на Java. Он удобно вычисляет огромные объемы данных с помощью приложений картирования и сокращения, чтобы найти решение для требуемой проблемы. Шаг отображения принимает набор данных, чтобы преобразовать его в другой набор данных, разбив отдельные элементы на пары ключ / значение, называемые кортежами. Второй шаг сокращения берет выходные данные, полученные в процессе отображения, и объединяет кортежи данных в меньший набор кортежей.

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

Вот некоторые термины в процессе сокращения карты:

Главный узел - место, где работает Job Tracker и где принимаются запросы на работу от клиентов.

Slave Node - это место, где выполняются программы картирования и сокращения

Job Tracker - это объект, который планирует задания и отслеживает задания, назначенные с помощью Task Tracker.

Task Tracker - это сущность, которая фактически отслеживает задачи и предоставляет статус отчета для Job Tracker.

Задание - задание Map Reduce - это выполнение программы Mapper & Reducer для набора данных.

Задача - выполнение программы Mapper & Reducer для определенного раздела данных

Попытка задачи - попытка выполнения определенной задачи на подчиненном узле

ответил(а) 2020-06-07T16:12:32+03:00 3 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема