Вывод reduce идет в распределенную файловую систему.
Эта распределенная файловая система запускается обычно на тех же серверах, где выполняются задачи map и reduce.
Например, Apache Hadoop использует HDFS, известную как распределенная файловая система Hadoop.
Обычно эта файловая система хранит множественные копии одного и того же входного блока данных.
Она копирует файловые блоки как минимум три раза и эти три файловые копии размещаются на трех разных серверах.
И поэтому, когда запускается задача map, необходимо извлечь блок данных, который является его блоком входных данных с одного из серверов, который хранит его в настоящее время.
Задача запрашивает онлайн-файловую систему HDFS, чтобы сделать это, и эта передача выполняется быстрее, если сервер, на котором расположен этот конкретный блок, фактически является тем же сервером, на котором выполняется задача map.
Вывод map не хранится в распределенной файловой системе.
Вместо этого вывод map сохраняется на локальном диске на сервере, на котором выполняется задача map.
И ввод данных reduce производится с этих удаленных дисков.
Причина, по которой этот промежуточный траффик между map и reduce использует локальную файловую систему – это скорость передачи данных и потому что эти данные не нужны внешнему пользователю.
Наконец, когда результат reduce получен, он записывается в распределенную файловую систему обратно, где он становится доступен.
Давайте немного посмотрим, как работает планировщик.
Планировщик YARN – это планировщик, который используется в Apache Hadoop.
YARN означает Yet Another Resource Negotiator.
Он обрабатывает каждый сервер как коллекцию контейнеров.
Контейнер – это процессор с некоторой памятью.
Таким образом, каждый сервер состоит из коллекции контейнеров.
Так, например, если сервер имеет 4 ядра и 4 гигабайта ОЗУ, в каждом контейнере есть одно ядро и 1 гигабайт ОЗУ, и у этого сервера есть 4 контейнера и, по существу, он может выполнять четыре задачи по одной в каждом контейнере.
YARN имеет три основных компонента.
Это менеджер ресурсов, администраторы узлов и мастера приложений.
И существует один глобальный менеджер ресурсов, который запускает планировщика.
Существует один менеджер узла на один сервер в системе.
Это Daemon, который отвечает за все специфическое управление сервером, а также отвечает за мониторинг сбоев задач, которые выполняются на этой конкретной машине.