Как работает MapReduce? - Работа, фазы и преимущества MapReduce

Содержание:

Anonim

Введение в MapReduce

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

MapReduce может выполнять распределенные и параллельные вычисления с использованием больших наборов данных на большом количестве узлов. Задание MapReduce обычно разделяет входные наборы данных и затем обрабатывает каждый из них независимо с помощью задач Map совершенно параллельным образом. Затем выходные данные сортируются и вводятся для сокращения задач. Как ввод, так и вывод задания хранятся в файловых системах. Задачи планируются и контролируются платформой.

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

Архитектура MapReduce содержит два основных компонента в качестве сервисов Daemon, отвечающих за выполнение задач мапперов и редукторов, мониторинг и повторное выполнение задач при сбое. В Hadoop 2 и далее Resource Manager и Node Manager являются службами демонов. Когда клиент задания отправляет задание MapReduce, эти демоны вступают в действие. Они также отвечают за параллельную обработку и функции отказоустойчивости заданий MapReduce.

В Hadoop 2 и более поздних версиях функции управления ресурсами и планирования заданий или мониторинга разделяются YARN (еще одним согласователем ресурсов) как различные демоны. По сравнению с Hadoop 1 с Job Tracker и Task Tracker, Hadoop 2 содержит глобальный диспетчер ресурсов (RM) и мастера приложений (AM) для каждого приложения.

  • Job Client отправляет работу менеджеру ресурсов.
  • Планировщик YARN Resource Manager отвечает за координацию распределения ресурсов кластера между запущенными приложениями.
  • Диспетчер узлов YARN работает на каждом узле и осуществляет управление ресурсами на уровне узла, координируя действия с менеджером ресурсов. Он запускает и контролирует вычислительные контейнеры на машине в кластере.
  • Application Master помогает ресурсам из Resource Manager и использует Node Manager для запуска и координации задач MapReduce.

  • HDFS обычно используется для обмена файлами заданий между другими объектами.

Фазы модели MapReduce

Модель MapReduce имеет три основных и один дополнительный этап:

1. Картограф

  • Это первая фаза программирования MapReduce и содержит логику кодирования функции mapper.
  • Условная логика применяется к «n» количеству блоков данных, распределенных по различным узлам данных.
  • Функция Mapper принимает пары ключ-значение в качестве входных данных как (k, v), где ключ представляет адрес смещения каждой записи, а значение представляет весь контент записи.
  • Вывод фазы Mapper также будет в формате значения ключа как (k ', v').

2. Перемешать и сортировать

  • Выходные данные различных картографов (k ', v') затем переходят в фазы перемешивания и сортировки.
  • Все повторяющиеся значения удаляются, а разные значения группируются по одинаковым ключам.
  • Выходные данные фазы перемешивания и сортировки снова будут парами ключ-значение в качестве ключа и массива значений (k, v ()).

3. Редуктор

  • Выходной сигнал фазы перемешивания и сортировки (k, v ()) будет входным сигналом фазы редуктора.
  • На этом этапе выполняется функция логики редуктора, и все значения агрегируются по соответствующим ключам.
  • Редуктор объединяет выходные данные различных картографов и вычисляет итоговые выходные данные.
  • Окончательный вывод записывается в один файл в выходной каталог HDFS.

4. Комбинатор

  • Это необязательный этап в модели MapReduce.
  • Этап объединения используется для оптимизации производительности заданий MapReduce.
  • На этом этапе различные выходы преобразователей локально уменьшаются на уровне узла.
  • Например, если различные выходные данные преобразователя (k, v), поступающие из одного узла, содержат дубликаты, то они объединяются, то есть локально сокращаются как один (k, v ()) выход.
  • Этот этап делает этапы перемешивания и сортировки еще быстрее, что обеспечивает дополнительную производительность в заданиях MapReduce.

Все эти фазы в задании MapReduce можно изобразить следующим образом:

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

fruits_array = (яблоко, апельсин, яблоко, гуава, виноград, апельсин, яблоко)

  • Фаза Mapper токенизирует входной массив слов в 'n' количество слов, чтобы получить результат как (k, v). Например, рассмотрим «яблоко». Выходные данные Mapper будут (apple, 1), (apple, 1), (apple, 1).
  • Shuffle и Sort принимают вывод mapper (k, v) и группируют все значения в соответствии с их ключами как (k, v ()). т.е. (яблоко, (1, 1, 1)).
  • Фаза «Редуктор» принимает выходные данные Shuffle и sort и дает совокупность значений (apple, (1 + 1 + 1)), соответствующих их ключам. т.е. (яблоко, 3).

Спекулятивное выполнение работы MapReduce

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

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

Здесь преимущества MapReduce упоминаются ниже

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

  • В середине работы по уменьшению карты, если машина, несущая несколько блоков данных, выходит из строя, архитектура обрабатывает ошибку.
  • Он рассматривает реплицированные копии блоков на альтернативных машинах для дальнейшей обработки.

2. Устойчивость

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

3. Быстрый

  • Обработка данных происходит быстро, так как MapReduce использует HDFS в качестве системы хранения.
  • MapReduce занимает минуты, чтобы обработать терабайты неструктурированных больших объемов данных.

4. Параллельная обработка

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

5. Доступность

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

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

  • Hadoop - очень масштабируемая платформа.
  • Традиционные системы СУБД не масштабируются в соответствии с увеличением объема данных.
  • MapReduce позволяет запускать приложения с огромного количества узлов, используя терабайты и петабайты данных.

7. Экономически эффективным

  • Функция горизонтального масштабирования Hadoop наряду с программированием MapReduce позволяет хранить и обрабатывать данные очень эффективным и доступным способом.
  • Экономия может быть огромной в виде сотен терабайт данных.

Вывод - как работает MapReduce

Современные данные все больше переходят к неструктурированному типу, а огромный, традиционный вариант обработки данных, такой как СУБД, еще сложнее, отнимает много времени и стоит дороже. Но программирование Hadoop MapReduce намного эффективнее, безопаснее и быстрее при обработке больших наборов данных, даже терабайтных или петабайтных.

Рекомендуемые статьи

Это руководство к тому, как работает MapReduce. Здесь мы обсуждаем фазы модели MapReduce с преимуществами и как она работает. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -

  1. Компоненты экосистемы Hadoop
  2. MapReduce Алгоритмы
  3. Что такое MapReduce в Hadoop?
  4. MapReduce Интервью Вопросы