Использует ли потоковая передача hadoop стабильную сортировку между картами и фазами сокращения? - PullRequest
0 голосов
/ 20 декабря 2011

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

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

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

Спасибо

SetJmp

1 Ответ

2 голосов
/ 20 декабря 2011

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

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

Редактировать: обновлена ​​неработающая ссылка

...