【发布时间】:2014-05-10 23:22:07
【问题描述】:
我对 MapReduce 的了解只有高级别的,但对实现中允许的内容有一个具体的问题。
我想知道 Mapper 是否容易(或可能)在 reducer 之间均匀分布给定的键值对。可能是这样的
(k,v) -> (proc_id, (k,v))
其中proc_id 是处理器的唯一标识符(假设每个键k 都是唯一的)。
核心问题是,如果 reducer 的数量不是固定的(根据输入的大小动态确定;这在实践中是如何完成的吗?),那么映射器如何生成合理的 id?一种方法是让映射器知道键值对的总数。 MapReduce 是否允许映射器拥有这些信息?另一种方法是执行少量额外的计算。
执行此操作的适当方法是什么?
【问题讨论】: