我只是想确认我对0减速器和减速器之间差异的理解。
答案 0 :(得分:37)
你的理解是正确的。我将其定义如下:
如果您不需要对地图结果进行排序 - 您将0设置为减少,并且该作业仅称为地图。
如果需要对映射结果进行排序,但不需要任何聚合 - 则选择identity reducer。
为了完成图片,我们有第三种情况:我们确实需要聚合,在这种情况下我们需要reducer。
答案 1 :(得分:5)
使用Identity Reducer的另一个用例是将所有结果合并到<#of reducers>中。输出文件。如果您使用Amazon Web Services直接写入S3,这可能很方便,特别是如果映射器输出很小(例如grep /搜索记录),并且您有很多映射器(例如1000)。
答案 2 :(得分:3)
这取决于您的业务需求。如果您正在进行wordcount,则应减少地图输出以获得总结果。如果您只想将单词更改为大写,则不需要缩小。
答案 3 :(得分:3)
“No Reducer”(mapred.reduce.tasks = 0)和“Standard reducer”之间的主要区别是IdentityReducer (mapred.reduce.tasks = 1等)当你使用“No reducer”时,在MAP阶段之后没有分区和改组过程。因此,在这种情况下,您将从映射器获得“纯”输出而无需进一步处理。它有助于开发和调试puproses,但不仅如此。