Множественный выход в редукторе

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

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

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

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

priority2 x 2

priority2 y 2

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

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

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

2 ответа

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

Затем вам нужно создать свой собственный outputformat класс и recordwriter класс.

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


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

licensed under cc by-sa 3.0 with attribution.