Это может быть агрегирование как сопоставителя, так и редуктора или только редуктора.
При включенной агрегации на стороне карты:
hive.map.aggr=true;
данные будут предварительно агрегированы (в рамках обработки разделения ) на каждом картографе с помощью таблицы Ha sh. Редуктор выполнит окончательную агрегацию частичных результатов, полученных от сопоставителя.
Сопоставители выведут пары (#{token}, #{token_count})
. Фреймворк Had oop снова сортирует эти пары, и редукторы суммируют значения для получения общего количества для каждого токена. В этом случае каждый сопоставитель будет выводить одну строку для каждого токена каждый раз, когда карта очищается, вместо одной строки для каждого вхождения каждого токена. Компромисс заключается в том, что им необходимо хранить карту всех токенов в памяти.
Если агрегирование на стороне карты отключено: hive.map.aggr=false
, сопоставитель отфильтрует строки и отправит их редуктору, редуктор сделает агрегация, это может вызвать высокий сетевой ввод-вывод.
Подробнее о Агрегация на стороне карты в Hive. См. Также связанные { ссылка }