Время выполнения Редукторов определяется параметром конфигурации: mapreduce.job.reduce.slowstart.completedmaps
(в mapred-site.xml). По умолчанию установлено значение «0,05». Это означает, что когда около 5% Mappers завершены, Reducers планируется выполнить.
Вы можете настроить этот параметр для достижения разных результатов. Напр. установка «1.0» гарантирует, что Редукторы будут запущены только после завершения 100% Mappers.
Задачи Redcuer начнут копировать данные с картографов, которые завершили выполнение. Но метод reduce()
будет вызываться, только когда данные из всех копий копируются редуктором.
Эта ссылка: When do reduce tasks start in Hadoop?, ясно объясняет этот процесс.
Что касается спекулятивного исполнения, он запускается только в случае Mappers/Reducers, которые отстают от других Mappers/Reducers. Если один и тот же экземпляр Mapper выполняется в двух экземплярах, это не означает, что счетчики также дублируются. Счетчики задач поддерживаются для каждой попытки задачи. Если попытка задачи не удалась или была убита (из-за спекулятивного выполнения), то счетчики для этой попытки будут сброшены. Таким образом, спекулятивное исполнение не будет влиять на общее значение счетчика.
Следует помнить, что значения счетчика являются окончательными только после успешного завершения задания.
hm, я верю, что фаза уменьшения карты может быть запущена до того, как все картографы закончены, наверняка можно было бы разделить часть раздела. Но я хочу, чтобы моя функция уменьшения java не была вызвана, прежде чем все картографы были выполнены, до того, как часть раздела полностью будет завершена. – serg
Редукторы могут запускаться еще до того, как все мапперы будут завершены. Как я объяснил в ответе, когда начинаются редукторы, определяется параметр: mapreduce.job.reduce.slowstart.completedmaps –
[это] (https://www.cs.rutgers.edu/~pxk/417/ примечания/контент/mapreduce.html): «Шаг 5: Уменьшить: Сортировка (Shuffle) Когда все работники карты завершили свою работу, мастер уведомляет работников сократить, чтобы начать работать». Указанный вами параметр указывает, когда можно запустить рабочий стол «Шаг 4: Карта»: раздел, который в Hadoop является частью фазы сокращения. – serg