Процесс MapTask-ReduceTask

MapTask

  • Читайте этап: MapTask RecordReader написан пользователем, разборе один ключ / значение из входного InputSplit

  • Фаза Карта: Основной узел обрабатывается ключ / значение, записанное на карту пользователя () функция обрабатывает, и генерировать новый набор ключ / значение

  • Сбор коллекции фазы: готовил карту функции пользователя (), когда обработка данных завершена, обычно называют OutputCollector.collect () выход. Внутри функции, он будет генерировать ключ / значение раздела (секционирования вызов), и записываются в буфер памяти кольцевой

  • этап Spill: когда кольцевой буфер заполнен, MapReduce будет записывать данные на локальный диск, создать временный файл. Следует отметить, что перед записью данных на локальный диск, данные должны сначала провести локальную сортировку и консолидацию данных, в случае необходимости, сжатия и других операций, фазы записи деталей переполнения:

    • Шаг 1: Используйте алгоритм быстрой сортировки для сортировки данных в области кэша, сортировка сначала сортируется в соответствии с раздела номером раздела, а затем следует ключу сортировки. Таким образом, после сортировки, раздел данных сойтись как единое целое, и все данные в соответствии с ключом того же раздела

    • Шаг 2: превратить данные в каждом разделе писать временные файлы в соответствии с мандатом рабочего каталога в соответствии с номером раздела от мала до велика. Если пользователь устанавливает сумматор, перед записью файла, данные в каждой операции агрегации раздела раз

    • Шаг 3: раздел данных мета-информация записывается в структуре данных индекса в памяти SpillRecord, в котором метаинформации каждого раздела, включающий смещение во временном файле, размер данных перед сжатием и размер данных после сжатия

  • Объединить фазу: После того, как вся обработка данных завершена, MapTask для всех временных файлов после слияния, чтобы гарантировать, что он будет в конечном итоге создать файл данных

ReduceTask

  • этап копирования: ReduceTask от каждого MapTask удаленного копирования данных, а также данных для некоторого, если его размер превышает определенный порог, то записывается на диск, или непосредственно в память

  • Объединить этап: в то время удаленного копирования данных, ReduceTask фоновый поток начал два файла на диске и консолидации памяти, с тем чтобы предотвратить чрезмерное использование слишком много памяти или дискового файла

  • Сортировка фазы: полученные в соответствии MapReduce уменьшить семантику, функция пользователя () входных данных представляет собой набор данных, собранных с помощью ключа. Для одних и тех же ключевых данных вместе, использовали стратегию сортировки на основе Hadoop. Поскольку каждый MapTask достигли их результаты лечения были своего рода местные, поэтому, ReduceTask только один раз все данные, сортировка слиянием

  • Уменьшить этап: сокращение () функция записывает результат вычисления на HDFS

рекомендация

отwww.cnblogs.com/xiangyuguan/p/11316422.html