Использует ли потоковая передача hadoop стабильную сортировку между картами и фазами сокращения?
Это имеет последствия для многоступенчатых работ. Например, если мы сортируем по ключу "a" на этапе 1 задания и ключу "b" на этапе 2 задания (который принимает вывод фазы 1 в качестве стандартного ввода), можем ли мы предположить, что после завершения двух этапов записи будут отсортировано по ключу "b" и вторично по ключу "a"? Для целей этого вопроса предположим, что преобразователи и преобразователи не переставляют порядок записи. Также предположим, что число задач уменьшения составляет 1 или более.
Имейте в виду, что ответ может варьироваться в зависимости от количества задач сокращения для фазы 1. Например, если число задач сокращения для фазы 1 было больше 1, ключ a будет разделен на несколько файлов (хотя в отсортированном порядке с уважение к каждому файлу). Однако, когда есть только одна задача сокращения, все значения появятся в одном файле, и это может быть необходимым условием стабильности, в зависимости от реализации.
Если ответ утвердительный, ссылка на соответствующую документацию будет наиболее полезной.
Спасибо,
SetJmp
1 ответ
По умолчанию Hadoop не будет применять требуемые свойства стабильной сортировки.
В потоковой передаче Hadoop есть Comparator и Partitioner, чтобы упростить сортировку результатов от карты до сокращения; посмотрите здесь
Изменить: обновлена неработающая ссылка