0

我有兴趣在 MapReduce 执行的特定阶段对 Hadoop 集群进行基准测试。也就是说,我希望在 map 阶段、shuffle 阶段和 reduce 阶段之间有一个清晰的分离。

有没有办法在所有地图任务完成之前避免洗牌或减少任何东西,并在所有洗牌完成之前避免减少?我不关心对执行时间的影响,因为我只对每个阶段的资源消耗感兴趣。

我看到另一篇关于通过在不应该减少的节点和不应该映射的节点上设置mapred.tasktracker.reduce.tasks.maximum来分离特定节点上的任务的帖子,但在这种情况下,映射和减少任务仍然同时运行,我也不能在每个阶段使用我的完整集群。0mapred.tasktracker.map.tasks.maximum0

谢谢!

4

1 回答 1

1

有没有办法在所有地图任务完成之前避免洗牌或减少任何东西,并在所有洗牌完成之前避免减少?

mapreduce.job.reduce.slowstart.completedmaps设置为 0.05 并定义为Fraction of the number of maps in the job which should be complete before reduces are scheduled for the job.

将上述参数设置为 1,直到所有 map 任务执行完成后才开始洗牌。

于 2012-02-01T03:56:49.803 回答