Найти в Дзене
Часть знаний

День 204. MapReduce.

MapReduce — модель распределённых вычислений, представленная компанией Google. Используется для параллельных вычислений над большими (до нескольких петабайт) наборами данных в компьютерных кластерах. Авторы модели — сотрудники Google Джеффри Дин и Санджай Гемават. Принцип работы Суть MapReduce — разделение информационного массива на части, параллельная обработка каждой части на отдельном узле и финальное объединение всех результатов. Преимущество модели — возможность распределённо выполнять операции предварительной обработки и свёртки. Операции предварительной обработки работают независимо друг от друга и могут производиться параллельно (хотя на практике это ограничено источником входных данных и/или количеством используемых процессоров). Этапы Работа MapReduce состоит из двух шагов: Пример: задача — подсчитать количество вхождений каждого слова в текстовом файле. Функция Map считывает файл построчно, разбивает каждую строку на слова и создаёт пары «ключ-значение», где ключ — это слов

MapReduce — модель распределённых вычислений, представленная компанией Google. Используется для параллельных вычислений над большими (до нескольких петабайт) наборами данных в компьютерных кластерах.

Авторы модели — сотрудники Google Джеффри Дин и Санджай Гемават.

Принцип работы

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

Преимущество модели — возможность распределённо выполнять операции предварительной обработки и свёртки. Операции предварительной обработки работают независимо друг от друга и могут производиться параллельно (хотя на практике это ограничено источником входных данных и/или количеством используемых процессоров).

Этапы

Работа MapReduce состоит из двух шагов:

  1. Map — предварительная обработка входных данных. Один из компьютеров (главный узел — master node) получает входные данные задачи, разделяет их на части и передаёт другим компьютерам (рабочим узлам — worker node) для предварительной обработки.
  2. Reduce — свёртка предварительно обработанных данных. Главный узел получает ответы от рабочих узлов и на их основе формирует результат — решение задачи, которая изначально формулировалась.

Пример: задача — подсчитать количество вхождений каждого слова в текстовом файле. Функция Map считывает файл построчно, разбивает каждую строку на слова и создаёт пары «ключ-значение», где ключ — это слово, а значение — это число 1. Затем функция Reduce суммирует все значения для каждого уникального слова.

Области применения

MapReduce используется в сценариях, где необходимо обрабатывать или анализировать большие объёмы данных. Некоторые области:

  • обработка логов;
  • анализ социальных медиа;
  • обработка данных из научных исследований;
  • машинное обучение — для обработки и подготовки данных перед обучением моделей (удаление дубликатов, нормализация данных).

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

Реализация

Модель MapReduce используется в виде фреймворков, например:

  • Apache Hadoop — платформа для обработки больших данных, где MapReduce — один из компонентов.
  • Amazon Elastic MapReduce (EMR) — облачная реализация от Amazon, которая предлагает лёгкий способ запуска и масштабирования процессов без необходимости управлять физическими серверами.