Чтобы объяснить это на примере:
Предположим, что размер входного файла hadoop равен 2 ГБ, а размер блока равен 64 МБ, поэтому задаются 32 задачи Mappers, в то время как каждый модуль отображения обрабатывает блок размером 64 МБ взавершите задание Mapper для вашего задания Hadoop.
==> Количество заданных для работы картографов полностью зависит от 1) размера файла и 2) размера блока
Предположим, у вас запущен hadoop наразмер кластера 4: Предположим, что вы установили параметры mapred.map.tasks и mapred.reduce.tasks в файле conf для узлов следующим образом:
Node 1: mapred.map.tasks = 4 and mapred.reduce.tasks = 4
Node 2: mapred.map.tasks = 2 and mapred.reduce.tasks = 2
Node 3: mapred.map.tasks = 4 and mapred.reduce.tasks = 4
Node 4: mapred.map.tasks = 1 and mapred.reduce.tasks = 1
Предположим, вы установили вышеуказанные параметры для 4 ваших узловв этом кластере.Если вы заметили, что для Узла 2 установлены только 2 и 2 соответственно, потому что ресурсы обработки Узла 2 могут быть меньше, например (2 процессора, 2 ядра), а для Узла 4 даже установлено меньше 1 и 1, соответственно, возможно, из-за ресурсов обработкина этом узле 1 процессор, 2 ядра, поэтому не может работать более 1 задачи преобразования и 1 задачи редукции.
Таким образом, при запуске задания узел 1, узел 2, узел 3, узел 4 настраиваются для запускамакс.всего (4 + 2 + 4 + 1) 11 задач mapper одновременно из 42 задач mapper, которые должны быть выполнены заданием.После того, как каждый узел завершит свои задачи карты, он возьмет оставшиеся задачи картографа, оставшиеся в 42 задачах картографа.
Теперь перейдем к редукторам, так как вы установили mapred.reduce.tasks = 0, так что мы получаем только вывод карт в 42файлы (по 1 файлу для каждой задачи отображения) и без вывода редуктора.