我有两个与 mapreduce 和 hadoop 相关的概念疑惑。我知道一个简单的一次迭代 map-reduce 程序,知道什么是 mapper、reducer、shuffler。 但还是想了解以下问题
1)迭代 map reduce 什么时候完成?
2) 我知道身份映射器/缩减器提供与馈送输入相同的输出。 但是我们什么时候使用身份映射器/缩减器?
最佳答案
1) 迭代 MR 算法的一个例子是 Dijkstra 的最短路径算法。在每次迭代中探索所有事件节点的最近邻居,减少阶段用于检查是否已经到达目标节点。其他示例是 Facebook 的 friend 之友 (FoF) 算法,用于查找推荐新 friend 。
2) 如果您只想对输入进行排序,则可以使用identity mapper(以及其他!)。例如,identity reducer 可用于实现令人尴尬的并行算法,您只需使用映射器来执行并行任务,但您希望对输出键值对进行排序。
希望这对您有所帮助。
请注意,除了 identity reducer 之外,您还可以设置 NO reducer(这样 map 输出就不会排序)。
关于hadoop - 什么时候使用身份映射器/缩减器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19539683/