Использует ли потоковая передача hadoop стабильную сортировку между картами и фазами сокращения?

Это имеет последствия для многоступенчатых работ. Например, если мы сортируем по ключу "a" на этапе 1 задания и ключу "b" на этапе 2 задания (который принимает вывод фазы 1 в качестве стандартного ввода), можем ли мы предположить, что после завершения двух этапов записи будут отсортировано по ключу "b" и вторично по ключу "a"? Для целей этого вопроса предположим, что преобразователи и преобразователи не переставляют порядок записи. Также предположим, что число задач уменьшения составляет 1 или более.

Имейте в виду, что ответ может варьироваться в зависимости от количества задач сокращения для фазы 1. Например, если число задач сокращения для фазы 1 было больше 1, ключ a будет разделен на несколько файлов (хотя в отсортированном порядке с уважение к каждому файлу). Однако, когда есть только одна задача сокращения, все значения появятся в одном файле, и это может быть необходимым условием стабильности, в зависимости от реализации.

Если ответ утвердительный, ссылка на соответствующую документацию будет наиболее полезной.

Спасибо,

SetJmp

1 ответ

Решение

По умолчанию Hadoop не будет применять требуемые свойства стабильной сортировки.

В потоковой передаче Hadoop есть Comparator и Partitioner, чтобы упростить сортировку результатов от карты до сокращения; посмотрите здесь

Изменить: обновлена ​​неработающая ссылка

Другие вопросы по тегам