- Целью фреймворка сокращения карт является простое выражение вычислений и абстракция распределенных вычислений (детали распараллеливания, отказоустойчивости, оптимизации локальности и балансировки нагрузки), поэтому пользователю просто нужно определить свои вычисления через Логика Map-Reduce и параллельные вычисления на нескольких распределенных узлах выполняются автоматически.
- Вычисление выражается через логику сокращения карты.
- Разделенные входные данные передаются в виде пары «ключ-значение» в функцию карты. Функция карты обрабатывает (вычисляет входные данные) значение ключа, введенное в соответствии с функцией карты пользователя, и выдает промежуточный результат «ключ, значение». Промежуточный результат может быть другого типа/домена из входной пары ‹ключ, значение›.
- Этот промежуточный результат является входом для функции сокращения, функция уменьшения также определяется пользователем. Логика функций Reduce определяет, как агрегировать значение одного и того же ключа в промежуточной паре, созданной функцией Map.
- Например, рассмотрим простую задачу подсчета работы. Функции Map принимают каждую строку текстового файла в качестве входных данных и выдают ‹word , 1 › в качестве промежуточного результата. Редуктор получает промежуточный ввод ‹word, 1› ad и просто увеличивает счетчик и подсчитывает количество вхождений слова.
Вот ссылка на оригинальную карту уменьшить бумагу.