mapreduce学习

来源:互联网 发布:mac上的迅雷下载不了 编辑:程序博客网 时间:2024/05/02 01:56

最近写分布式操作系统作业,想写个分布式的图形学的应用,顺便学习一下mapreduce。

mapreduce适合的应用的特点是有哪些呢?

1、输入数据很大,而且与一个输出数据相关的输入数据并不是很多。

这个特点就可以将数据分布到不同的机器中去,而且由输入数据计算得到输出数据时也并不需要过多的进行交互,网络带宽不是很高。

2、输出数据之间的相关性不是很大。

如果输出数据之间的相关性很大,那么就需要采用迭代的方法,比如pagerank算法。

 

我本来想用mapreduce来实现最短路径算法,现在觉着这并不是个很好的实例。

使用mapreduce实现shortest path的算法是parallel bfs,这个算法会导致浪费很多扩展路径。

比如计算A到所有节点的最短路径,在某一个过程中得到B的最短距离为d,然后以后会根据这个d来对B节点进行扩展,而在后面的某步中得到B的新的距离d’,这时前面对B进行的扩展就白费了……。

所以在某些极端的情况下,mapreduce花费的时间会和dijkstra算法一样。