Я изучаю Hadoop по книге Hadoop in Practice
, и, читая главу 1, я наткнулся на эту диаграмму:
Из документации Hadoop :( http://hadoop.apache.org/docs/current2/api/org/apache/hadoop/mapred/Reducer.html)
1. перемешать
Reducer - это входной сгруппированный выход Mapper. На этом этапе фреймворк для каждого редуктора выбирает соответствующий раздел вывода всех преобразователей через HTTP.
2. Сортировка
На этом этапе фреймворк группирует входные данные Reducer по ключам (поскольку разные Mappers могут выводить один и тот же ключ). Фазы перетасовки и сортировки происходят одновременно, то есть во время выборки выходных данных они объединяются.
Хотя я понимаю, что shuffle
и sorting
происходят одновременно, мне непонятно, как фреймворк решает, какой reducer
какой mapper
вывод получить. Из документации кажется, что у каждого reducer
есть способ узнать, какой map
output собирать, но я не могу понять, как это сделать.
Итак, мой вопрос: учитывая вывод картографов выше, конечный результат всегда один и тот же для каждого редуктора? Если да, то каковы шаги для достижения этого результата?
Спасибо за любые разъяснения!