在我的分布式系统课程中,我们开始讨论分布式计算的 map reduce 模型。在 map-reduce 架构中,reducer 多于 mapper 有什么好处?
注意:谷歌搜索这个问题提供了关于这个问题的相互矛盾的意见。
假设您的数据量很小,那么您不需要运行那么多映射器来并行处理输入文件。
但是,如果<key,value>
映射器生成的对很大且多样化,那么拥有更多的 reducer 是有意义的,因为您可以<key,value>
并行处理更多数量的对。
让我们考虑一个例子,你的 mapper 输出有 10 个键,每个键有 100 个值,所以如果你有 10 个 reducer,你可以并行处理所有的键。
现在假设您的映射器输出 100 个键,每个键中有 10 个值。然后拥有 100 个减速器将并行处理您的所有密钥。(当然,同时运行 100 个减速器会产生网络成本)
因此,根据您的映射器输出的数据类型,您可以决定减速器的最佳数量。