Краткий ответ: Mapper считывает файл, разбитый по строкам и преобразует строки в промежуточные строки только с необходимыми столбцами, выполняет начальную фильтрацию, агрегацию и другие преобразования.
Редуктор получает промежуточные строки от картографа и выполняет окончательную обработку: агрегирование, упорядочение и т. Д.
Длинный ответ:
Улей на MR и Hive onTez использует MapReduce framework примитивы для построения всего процесса обработки.
CSV-файл разделяется, а MapReduce framework порождает одну задачу карты для каждого InputSplit, сгенерированного InputFormat.
Карты преобразуют входные записи в промежуточные записи.Преобразованные промежуточные записи не обязательно должны быть того же типа, что и входные записи.Только необходимые столбцы включены в выданные записи.Заданная входная пара может отображаться на ноль или на множество выходных пар, mapper выполняет начальную фильтрацию и агрегацию.
Выходы Mapper сортируются, а затем разбиваются на редукторы, общее количество секций совпадает с количеством редукторов.
Промежуточные, отсортированные выходы всегдахранится в простом (key-len, key, value-len, value)
формате.Приложения могут контролировать, должны ли и как сжиматься промежуточные выходы.
Редуктор уменьшает набор промежуточных значений, которые разделяют ключ, до меньшего набора значений.Другими словами, Редуктор выполняет окончательное агрегирование, при необходимости упорядочивая.
Редуктор имеет 3 основных этапа: перемешать, отсортировать и уменьшить.Shuffle
Вход в редуктор - это отсортированный вывод картографов.На этом этапе фреймворк выбирает соответствующий раздел вывода всех преобразователей через HTTP.Сортировка
Каркас группирует входы редуктора по ключам (поскольку разные преобразователи могут выводить один и тот же ключ) на этом этапе.
Фазы перемешивания и сортировки происходят одновременно;пока извлекаются выходные данные карты, они объединяются.
В фазе сокращения вызывается метод reduce(WritableComparable, Iterator, OutputCollector, Reporter)
для каждой пары <key, (list of values)>
в сгруппированных входах.
Выход сокращениязадача обычно записывается в файловую систему.
Допустимо установить число задач сокращения на ноль, если уменьшение не требуется.В этом случае выходные данные map-задач идут напрямую в FileSystem.
Hive on Tez создает сложную работу (состоящую из множества шагов отображения и сокращения) в виде единого DAG (вершины - это этапы обработки - преобразователи или преобразователи, ребра - передача данных между ними) и может пропускать ненужные этапы и незаписывать промежуточные результаты в постоянное хранилище (HDFS).
Подробнее см. В документации MapReduce .