在map reduce中使用numofreducer

eeq64g8w  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(349)

我对Map有一个简单的疑问。
为什么我们必须在map reduce驱动程序类中设置numofreducers。如果我们不设置,默认值将为1。如果我设置100100,则reduce任务将运行。这样做的好处是什么。是否可以减少单个节点的工作量。(如果reduce任务为1,则任务将在1个节点中运行)。还有其他好处吗?
谢谢你的帮助

niknxzdl

niknxzdl1#

正确的减少次数似乎是: 0.95 or 1.75 multiplied by (<no. of nodes> * <no. of maximum containers per node>). 使用0.95,所有reduce都可以立即启动,并在Map完成时开始传输Map输出。使用1.75,速度更快的节点将完成第一轮reduce并启动第二轮reduce,从而更好地完成负载平衡。
增加的数量减少了框架开销,但增加了负载平衡并降低了失败的成本。
上面的比例因子略小于整数,以便在框架中为推测性任务和失败的任务保留一些缩减槽。
所以主要的优势是负载平衡和在集群上并行运行任务。

相关问题