Мы рассмотрели простой алгоритм для поиска связанных компонентов в графе, где иногда иногда бывает большой диаметр (наибольшие компоненты могут достигать 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, node_with_the_smallest_id как comp_id;
- группы узла
- фильтр узлы с более чем одним comp_id и построить «обновление большого comp_id малого comp_id» стол
- обновление всех узлы с большим comp_id к соответствующему новому малому comp_id, и пометить их как грязные
и перейти к следующей итерации с этими грязными узлами ... что нам здесь не хватает?
Сколько итераций это могло бы в конечном итоге взять? –
log (most_diameter) итерации – ihadanny