在map中使用numofreducers减少

时间:2016-05-09 07:54:11

标签: java hadoop mapreduce

我在map reduce中有一个简单的疑问。

为什么我们必须在map reduce class驱动程序中设置numofreducers。如果我们没有设置,默认值将是1.如果我设置100,100减少任务将运行。那是什么优点。它是为了减少单个节点的工作量。(如果reduce任务为1,则任务将在1个节点中运行。)还有其他优点吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

正确的减少数量似乎是:
0.95 or 1.75 multiplied by (<no. of nodes> * <no. of maximum containers per node>).

使用0.95时,所有缩小都可以立即启动并在地图完成时开始传输地图输出。使用1.75,更快的节点将完成第一轮减少并启动第二波减少,从而更好地实现负载平衡。

增加减少的数量会增加框架开销,但会增加负载平衡并降低故障成本。

上面的缩放因子略小于整数,以便在框架中为推测任务和失败任务保留一些减少时隙。

因此,主要优势是在群集上并行负载平衡和运行任务。