Извините за опоздание, но для будущих читателей, да, Чандер, вы что-то упустили.
Логика заключается в том, что Reducer может обрабатывать перетасованные, а затем сортировать данные своего узла только на том, на котором он работает.Я имею в виду, что редуктор, работающий на одном узле, не может просматривать данные другого узла, он применяет алгоритм уменьшения только к своим данным.Таким образом, процедура слияния сортировки слиянием не может быть применена.
Так что для больших данных мы используем TeraSort, который является ничем иным, как средством отображения и редукции идентификаторов с пользовательским разделителем.Подробнее об этом можно прочитать здесь Реализация Hadoop для TeraSort .В нем говорится:
"TeraSort - это стандартная сортировка карты / сокращения, за исключением пользовательского разделителя, который использует отсортированный список из N - 1 выборочных ключей, которые определяют диапазон ключей для каждого сокращения. В частности, все ключи такиечто выборка [i - 1] <= key <sample [i] отправляется для сокращения i. Это гарантирует, что все выходные данные для Reduce i меньше, чем выходные данные для Reduction i + 1. "</p>