我对mapreduce和hadoop有两个概念上的疑问。我知道一个简单的迭代map-reduce程序,知道mapper,reducer,shuffler是什么。。但仍然想了解以下问题
1)迭代map reduce什么时候完成?
2)我知道身份映射器/归约器给出与馈入输入相同的输出。但是我们什么时候使用身份映射器/归约器?
1) 迭代 MR 算法的一个例子是Dijkstra的最短路径算法。在每次迭代中,都会探索所有活动节点的最近邻居,reduce 阶段用于检查是否已经到达目标节点。其他示例是 Facebook 的朋友之友 ( FoF ) 算法,用于寻找建议新朋友。
2)如果您只想对输入进行排序,则可以使用身份映射器(等等!)。例如,可以使用身份归约器来实现令人尴尬的并行算法,在这种算法中,您只需使用映射器来执行并行任务,但您希望对输出键值对进行排序。
希望这能让你上路。
请注意,除了身份减速器之外,您还可以设置 NO 减速器(然后地图输出未排序)。