Я знаю, как работает карта, и какие у меня шаги:
- Отображение
- Перемешивание и сортировка
- Сокращение
Конечно, у меня есть Partitioning, Combiners, но это сейчас не важно.
Интересно то, что когда я запускаю задания по сокращению карты, похоже, что мапперы и редукторы работают параллельно:
Так что я не понимаю, как это возможно.
Вопрос 1. Если у меня есть несколько узлов, которые выполняют операцию отображения, как редуктор может начать работать?Потому что Редуктор не может начать работать без сортировки, верно? (вход должен быть отсортирован по Редуктору - если картограф все еще работает, вход не может быть отсортирован).
Вопрос 2. Если у меня несколько редукторов, как будут объединены окончательные данные?Другими словами, окончательные результаты должны быть отсортированы правильно?Это означает, что мы тратим дополнительного O (n * Log n) времени, чтобы объединить «несколько результатов редуктора?»