在图表的Hadoop MapReduce的实现最短路径,而不仅仅是距离(Hadoop MapRedu

2019-09-21 04:28发布

我一直在寻找“的MapReduce实现的最短路径搜索算法”。

不过,我能找到的所有实例“计算的最短距离的形式节点X到Y”,并没有实际输出“ 喜欢xabcy实际最短路径 ”。

至于我究竟想实现的是,我有图有上百个节点的1000,我需要执行的各个节点之间的最短路径频繁模式分析。 这是我工作的一个研究项目。

这将是一个很大的帮助,如果有人可以点我一些实施(如果存在的话),或者给一些指针,以how to hack the existing SSSP implementations to generate the paths along with the distances

Answer 1:

基本上,这些实现了某种消息的工作。 因此,消息被发送到HDFS地图和减少级之间。

在减速它们的分组和距离过滤,最低距离获胜。 当距离在这种情况下被更新,你必须设置顶点(当然,有些可能ID),其中消息来自。

所以,你必须每个顶点的额外的空间需求,但是你可以重建图中的每一个可能的最短路径。

基于您的评论:

应该是

我需要写另一个类顶点对象来保存这些附加信息。 谢谢你的提示,虽然这将是非常有益的,如果你能指出何时何地我可以捕捉的最小重量的,从您的博客,也许事情就在这个信息:-)

是啊,可能是一个相当酷的主题,也为Apache哈马。 大多数的实现都只是考虑成本,而不是真实路径。 在你的情况(从博客你上面链接),你将不得不以提取实际持有的相邻顶点的顶点类LongWritable (也许一个列表,而不是这种分裂的文本对象),并简单地增加父母或源ID作为字段(当然也LongWritable )。 在映射器传播时,您将设置此,那就是for循环的循环在当前关键节点的相邻顶点。

在同时遍历分组值将更新最低的地方减速,然后您就可以通过更新到最小顶点设置在关键顶点源顶点。

:实际上,你可以从我的博客获得一些顶点类这里来源从资料库或直接: 来源

也许它可以帮助你,这是很没有维护,所以请回来给我,如果你有一个具体的问题。

下面是与Apache哈马BSP相同的算法:

https://github.com/thomasjungblut/tjungblut-graph/blob/master/src/de/jungblut/graph/bsp/SSSP.java



文章来源: Hadoop MapReduce implementation of shortest PATH in a graph, not just the distance