Передача значений из Mapper в Reducer - PullRequest
2 голосов
/ 21 января 2012

Существует небольшое количество метаданных, которые я получаю, просматривая текущий файл, над которым работает маппер (и некоторые другие вещи). Мне нужно отправить эти метаданные на редуктор. Конечно, я могу заставить маппер выдавать это в паре , которую он генерирует как , но я хочу этого избежать.

Кроме того, ограничивая себя немного больше, я не хочу использовать DistributedCahce. Итак, у меня все еще есть варианты? Точнее, мой вопрос двоякий

(1) Я попытался настроить некоторые параметры, выполнив файл job.set (Prop, Value) в configure моего конвертера (JobConf) и выполнив job.get () в моего редуктора. настройка (JobConf) . К сожалению, я обнаружил, что это не работает. Кроме того, мне интересно знать, почему это поведение. Мой главный вопрос

(2) Как я могу отправить значение из преобразователя в редуктор «чистым способом» (если возможно, в рамках требуемых ограничений).

РЕДАКТИРОВАТЬ (С учетом ответа Правина Срипати)

Чтобы сделать это более конкретным, вот что я хочу. В зависимости от типа отправляемых данных мы хотим, чтобы они хранились в разных файлах (скажем, данные d1 заканчиваются в D1, а данные d2 заканчиваются в D2).

Значения D1 и D2 можно прочитать в конфигурационном файле и выяснить, что происходит, зависит от значения map.input.file . То есть пара после некоторой обработки должна перейти к D1, а - к D2. Я не хочу испускать такие вещи, как . Может, я как-то получу выяснение связи без выброса D1 или D2, может быть, умно используя файл конфигурации? Источник ввода (т. Е. Каталог ввода) для k1, d1 и k2, d2 один и тот же, который снова можно увидеть только через map.input.file

Пожалуйста, дайте мне знать, когда у вас будет время.

Привет
-Akash

1 Ответ

0 голосов
/ 21 января 2012

В зависимости от типа отправляемых данных мы хотим, чтобы они хранились в разных каталогах (скажем, данные d1 заканчиваются в D1, а данные d2 заканчиваются в D2).

Обычно o /p задания MR перейдет в одну выходную папку.Каждый картограф / редуктор запишет в отдельный файл.Я не уверен, как записать вывод MR задания o / p в разные каталоги без каких-либо изменений в платформе Hadoop.

Но, основываясь на типах выходных ключей / значений из преобразователя / редуктора, выходной файл можетбыть выбранным.Используйте подклассы MultipleOutputFormat .Должен быть реализован метод MultipleOutputFormat # generateFileNameForKeyValue , возвращающий строку на основе ключа ввода.

Посмотрите, как PartitionByStationUsingMultipleOutputFormat реализован в коде Hadoop -Подробное руководство.

После завершения задания можно легко переместить o / p с помощью команд hadoop в другой каталог.

...