我们环顾四周寻找一个简单的算法来找到直径有时很大(最大的组件有时可达到1米)的图中的连接组件。连接组件算法猪
我们发现很多非常复杂的MR算法:
- http://codingwiththomas.blogspot.de/2011/04/graph-exploration-with-hadoop-mapreduce.html
- http://blog.piccolboni.info/2010/07/map-reduce-algorithm-for-connected.html
- http://chasebradford.wordpress.com/2010/10/23/mapreduce-implementation-for-union-find/
这有什么错一个非常简单的算法:
- foreach组件,生成flatten(nodes_bag)作为节点,node_with_the_smallest_id作为comp_id;
- 组由节点
- 与多个comp_id过滤节点,并建立“更新大comp_id小comp_id”表
- 更新一个大comp_id到相应的新的小comp_id所有节点,并将其标记为脏
并继续对这些脏节点进行下一次迭代... 我们在这里丢失了什么?
最终可以进行多少次迭代? –
log(largest_diameter)迭代 – ihadanny