map уменьшить выходные файлы: part-r-* и part-*

У меня есть несколько вопросов о выходных файлах частей сокращения карты.

    1> What are the differences between part-r-* files and part-* files in map reduce output? part-r-* is output from mapper and part-* is from reducer?
    2> If reducer doesn't produce any results, mapper output will be staying or will be deleted?

person kee    schedule 07.06.2012    source источник


Ответы (3)


Обычно part-r-* происходит от редуктора. MultipleOutputs позволяет использовать другое соглашение об именах. Если нет шага уменьшения, вывод будет part-m-*. Насколько я понимаю, если определен редьюсер, выходные данные картографа удаляются независимо от того, производят ли редьюсеры что-либо. Обычно выходные файлы редуктора также создаются, даже если они пусты, если только вы не используете LazyOutputFormat. Где вы нашли файлы part-*, которые не заканчивались ни на m-nnnnn, ни на r-nnnnn?

person Judge Mental    schedule 07.06.2012

Для старых версий (‹ 0.2) они выводили только часть-000*. Но теперь мы видим как файлы part-m-n* (n представляет число ex: part-m-00000), так и файлы part-r-n*. part-r-n* для вывода из редукторов. part-m-n* — это результат работы объединителей. (Если я не использую объединитель, я не получаю часть-m-n*. Я не уверен, что это поведение по умолчанию.)

person Amit    schedule 07.06.2012

part-00000 — это выходные каталоги, созданные картографами или редюсерами в старом API. В новом API он был немного изменен на part-m-* для вывода картографа и part-r-* для вывода редукторов. Дополнительные сведения см. в «Полном руководстве по Hadoop» от OReilly, стр. 28.

person Community    schedule 04.02.2015