2012-02-19 2 views
1

Я работаю над простой программой уменьшения масштаба. Я хочу создать разные файлы после редуктора для каждого слова в ключе. Например, после выполнения MapReduce у меня есть что-то вродеНесколько выходных данных в редукторе

Приоритета 1 х 2

Приоритет 1 у 2

Приоритет 1 г 2

priority2 х 2

priority2 у 2

сейчас Я хочу разные файлы после фазы уменьшения, говоря Priority1 и Priority2, которые имеют все эти значения в соответствии с приоритетом. Я использую java и хочу знать, что должно быть написано в редукторе для получения такого вывода?

Я просто хочу знать, возможно ли это, или если это, как подойти или решить это? Я использую Hadoop 0.20.203, и поэтому множественные выходы не работают.

Любые указатели будут полезны. Спасибо за помощь! Atul

ответ

0

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

Для этого вам необходимо создать собственный класс outputformat и класс recordwriter.

Класс recordwriter, необходимо написать разные файлы в соответствии с вашими потребностями. Далее, если вам нужно отсортировать свои значения, создайте класс comparator для вашего ключевого поля.

+0

В частности, когда вы создаете выходной формат, как именно вы обрабатываете создание нового файла для каждого слова? Обычно выходные файлы создаются при вызове OutputFormat.getRecordWriter (контекст), так как бы вы знали, что назвать файл? – Huckle

0

Посмотрите на MultipleOutputs.

+0

Я посмотрел MultipleOutputs, но он недоступен в hadoop 0.20.203. Прошу прощения, я забыл упомянуть версию хаупа в моем Вопросе. Благодаря!! Atul – user722856

+0

ах, ладно. хорошо, я тоже мог бы спросить. :) Вы видели http://stackoverflow.com/questions/2180101/generating-multiple-output-files-with-hadoop-0-20? –

Смежные вопросы