在学习MapReduce时,我遇到了这个问题
给定的Mapreduce程序具有Map阶段,生成100个键值对和10个唯一键。 当使用散列分区器时,至少会有一个约简任务没有分配键(选择所有正确的答案),这个程序可以有多少个减少任务?
答案是B,C,D。
由于唯一的键数是10。我们必须至少有10减少任务。并且至少有一个约简任务有空键。
我无法理解这些答案是如何得出的。请帮我这个忙。
发布于 2015-04-19 19:27:42
映射输出中的唯一键只分配给一个约简任务。如果有10个唯一的键,并且有11个、50个或101个减缩任务,那么必然会有一些没有键的减缩任务。
发布于 2016-08-09 07:58:02
因为有10个独特的键,我们需要10个减速器,因为我们想要一个没有键分配的减速机,总共有11个减速机。
如果减速器的数量超过或等于11,则作业将毫无例外地运行。因此,任何大于或等于11的数字都是答案。
发布于 2022-08-22 18:17:52
在这种情况下,散列分析器仅仅意味着减少任务将由唯一的键合并。假设一个约简任务只在一个服务器上完成,因此10个任务中的每一个都是原子任务。
模块操作符(或任何合理的分区器)将确保在10个任务的情况下,3个服务器/还原器中的每个服务器都处于活动状态。
对于其他选项,如果有比任务更多的“减缩器”,如果我们要相信分区函数,那么所有的任务都将被分配给一个“减速器”(只有一个剩余的任务)。这是荒谬的,或者至少在没有额外背景的情况下是令人困惑的。显然,只有当任务数量超过减缩器/服务器的数量时,才需要分区。
https://stackoverflow.com/questions/29731547
复制相似问题