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

Вот ссылка на оригинальную карту уменьшить бумагу.