我对map reduce输出部分文件有一些疑问。
答案 0 :(得分:2)
通常,part-r- *来自减速器。 MultipleOutputs
允许您使用不同的命名约定。如果没有减少步骤,则输出将为part-m- *。据我了解,如果定义了reducer,则无论reducer是否产生任何东西,都会删除映射器输出。除非您使用LazyOutputFormat
,否则即使它们为空,也会生成reducer输出文件。你在哪里找到了没有以m-nnnnn或r-nnnnn结尾的part- *文件?
答案 1 :(得分:1)
对于旧版本(< 0.2),他们过去只输出part-000 *。但现在,我们看到part-m-n *(n代表数字ex:part-m-00000)和part-r-n *文件。 part-r-n *用于减速器的输出。 part-m-n *是组合器的输出。 (如果我不使用合并器,我不会得到任何part-m-n *。我不确定它是否是默认行为。)
答案 2 :(得分:0)
part-00000是旧API中由映射器或Reducer创建的输出目录。在新的API中,它略微更改为map-output的part-m- *和reducers输出的part-r- *。 有关更多详细信息,请参阅OReilly的Hadoop权威指南,第28页。