Mapper вызывается для каждого элемента в вашем входе, а затем он генерирует серию промежуточных пар ключ / значение.
Эти пары ключ / значение выглядят следующим образом: (функция, частичное совокупное значение) или (дом, 1) в вашем примере.После этого все выданные значения для данного ключа группируются вместе, например, (функция, (значение1, значение2 и т. Д.) или (дом, (1, 1, 1, 1, 1)) .
В итоге редуктор вычисляет итоговый совокупный результат по всем промежуточным значениям для этого признака. Таким образом, (признак, (значение1, значение2 и т. Д.) становится (функция, totalValue) . Или (дом, (1, 1, 1, 1, 1)) становится (дом, 5) .
Mapper не считает, сколько раз встречается эта функция (или слово в вашем примере), он просто разбивает выходные данные как (функция, значение). Задачей редуктора является вычисление окончательного агрегата для функцииВ противном случае, какова будет цель редуктора?
Мне нужно указать, что я в настоящее время изучаю Hadoop и модель программирования MapReduce. Таким образом, если я ошибаюсь, поправьте меня.