【问题标题】:Mapreduce without reducer function没有reducer功能的Mapreduce
【发布时间】:2014-03-05 13:50:54
【问题描述】:

我有一个数据文件,我的任务是使用 map reduce 从文件的每一行创建一个新数据,因为文件中的数据很大。 例如:文件包含:表达式(3 -4 *7-4),我需要从这个表达式(3+4/7*4)中随机创建一个新表达式。当我使用 map reduce 实现任务时,我使用 map 进行更改,并且 reduce 只是为了从 mapper 接收数据并对它们进行排序 只使用 map 来完成主要任务是否正确?

【问题讨论】:

  • 如果你想sort他们,你必须使用reducer。映射阶段仅转换您的数据。但是从你的描述来看,貌似不需要对结果进行排序?

标签: hadoop


【解决方案1】:

如果您不需要对地图结果进行排序 - 您设置 0 减少,(通过这样做

job.setNumReduceTasks(0);

在您的驱动程序代码中) 并且这项工作仅称为地图。

【讨论】:

    【解决方案2】:

    您的实现是正确的。如果您不想组合任何恰好相同的表达式,只需确保映射器输出的键都是唯一的。

    例如,既然您说您有一个巨大的数据文件,那么您可能会得到两个表达式,例如3-4*7-43*4/7+4,而这两个新表达式都变成了3+4*7-4。如果你使用表达式作为键,reducer 只会被两个表达式调用一次。如果您不希望发生这种情况,请确保为每个键使用唯一编号。

    【讨论】:

      猜你喜欢
      • 2013-04-28
      • 1970-01-01
      • 2017-07-28
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 2010-12-29
      • 2019-02-25
      • 1970-01-01
      相关资源
      最近更新 更多