-1

众所周知,在 map 任务中接收单词并在 WordCount 示例中的 reduce 任务中总结那些“一个”。

我尝试添加 System.out.println 以显示 wordcount 示例代码如何在 map/reduce 任务中运行。当我在 jobtracker 的网页上阅读 stdout 日志时,我注意到在 map 任务完成之前执行了一些“总结”工作,并在 reduce 任务中重新“总结”了 map 任务中的这些总和。

即使它不影响字数示例中的结果,但在其他工作中可能会出现问题。(做两次相同的工作!)

我已经修改了“mapred.reduce.slowstart.completed.maps”,但它不起作用。

有没有关于这个问题的配置?

4

1 回答 1

0

MapReduce 和 Hadoop 的优势之一是节点能够在获得足够信息时独立行动。在 Mappers 和 Reducer 的情况下,即使没有所有 Mappers 首先完成,Reducer 也可以启动。

作品不会重复!

可以通过使用选项“mapred.reduce.slowstart.completed.maps”或使用新 API“ mapreduce.job.reduce.slowstart.completedmaps ”来设置在 Reducers 调度之前需要完成的 Mapper 百分比.

如果你有组合器,那么故事是相似的,不会重复任何工作。但是,由于组合器是在 Mapper 节点上运行的优化,因此在执行操作时可能会调用多个组合器(很可能是求和,或某种类型的合并)。因此,对于组合器,即使您告诉减速器在 100% 的映射器完成之前不要启动,也可能会看到多个组合操作发生。

于 2013-05-16T21:16:04.683 回答