基于MapReduce的单源最短路径算法研究.doc
《基于MapReduce的单源最短路径算法研究.doc》由会员分享,可在线阅读,更多相关《基于MapReduce的单源最短路径算法研究.doc(4页珍藏版)》请在三一办公上搜索。
1、1.2 相关数据结构定义为了减少数据冗余, 本文对于图的表示方法采用邻接表的 方式进行存储,以各顶点为中心,每一行代表图中的一个顶点,各顶点数据结构描述如下:其中,ID 为顶点标识;distance 表示从源点到顶点的距离,除 到本身的距离为 0 外,其余初始值皆为无穷大 MAX;Flag 为标志 位, 其值可分别取 0、1、2,0 表示未处理的顶点,1 表示正待处理 的顶点,2 表示已经处理了的顶点,源点的初始值为 1,其余顶点 皆为 0;Adjacent information 代表邻接信息,包括顶点的邻接点及 其权值。如图 1 用邻接表表示的数据结构如图 2 所示:图 1 带权有向图 G
2、图 2 用邻接表表示图 1 的数据结构图 3 基于 MapReduce 的单源最短路径算法的执行过程文章编号:1008-0570(2011)12-0097-03基于的单源最短路径算法研究MapReduceResearch on the Single Source Shortest Path Algorithm Using MapReduce(湖南大学) 杨玲 李仁发 唐 卓YANG Ling LI Ren-fa TANG Zhuo摘要: 通 过 对 MapReduce 模型执行过程的分析 ,针 对 单 源最短路径算法难以随着云计算的产生和发展而应用及提高搜索效 率 的 问 题, 本文设计和实现
3、了一种基于 MapReduce 架构的并行单源最短路径算法 。 并 基 于 Hadoop 平台集群环境进行了研究 与 实 验, 结 果 表 明, 文中算法可以有效地找出整个图结构中的单源最短路径 , 且验证了算法性能的优越性 。关键词: MapReduce; 并行; 最短路径; hadoop中图分类号: TP393.0文献标识码: AAbstract: Via the analysis to implementation process of mapreduce, aimming at the problem that single source shortest path algorithm
4、is hard to be used with the appearance and development of cloud computing and the problem of searching efficiency,a parallel single source shortest path algorithm based on mapreduce framework is designed and implemented .research and experiment are done based on hadoop platform.As shown by the exper
5、imental results,the proposed algorithm can search the single source shortest path efficiently in the whole graphic structure,and its good performance is testified.Key words: MapReduce; Parallel; Shortest path; Hadoop引言计算机网络的飞速发展促进了云计算的产生。MapReduce 并行编程模型是云计算的核心技术之一,2005 年 4 月 6 日, Google 实 验 室 的 Jef
6、frey Dean 和 Sanjay Ghemawat 提 出 了 MapReduce 模型并进行了详细地阐述, 它为并行系统的数据处 理提供了一个简单、优雅的解决方案。Apache 基金会基于 Java 开发了一个分布式基础架构 Hadoop, 实现了 MapReduce 模型, 并提供了分布式计算平台。在通信网络与交通网络中, 并行问题和最短路径问题一直 是研究的热点, 有着极其重要的作用。在处理实际问题的过程 中, 通常将现实问题转化为图的网状形式来研究最短路径。而 MapReduce 并行计算模型的出现, 为解决大规模数据处理问题 提供了一种新的途径, 也为最短路径的并行计算带来了一种
7、新 的解决方法,有效提高了计算效率。本文提出了基于 MapReduce 的单源最短路径算法。首先利 用 MapReduce 架构来形成算法的并行化思想,分析并设计了算法的过程,然后通过 Hadoop 平台来实现算法,最后对实验结果 进行了分析。算法及其数据结构的定义11.1 单源最短路径算法单源最短路径是指给定一个带权有向图 G=(V,E,W),其中 V 为顶点集,E 为有向边集,W 为权集且每条边的权是一个非负实 数。另外,还给定 V 中的一个顶点,称为源,计算从源到所有其他 各顶点的最短路径长度。这里的长度是指各边权之和,根据不同 的实际情况,边上权值的长度可以表示成时间、距离、成本、损失
8、、损耗或其它任何沿一条路径的相加累积量,且为最小值。杨 玲: 硕士研究生邮局订阅号:82-946 120 元 / 年 - 97 -PLC 技术应用 200 例2 基 于 MapReduce 的 单 源 最 短 路 径算法的设计与实现MapReduce 用户用两个函数表达这个计算:map 和 reduce。 在 MapRedcue 模型中,用户指定一个 map 函数来处理一个输入 的 key/value 对,产生中间结果 key/value 对集,再通过 reduce 函 数来处理中间结果中具有相同 key 值的 value。基于 MapReduce 的单源最短路径算法的执行过程如图 3所示。(
9、1)输入数据的切分:MapReduce 对输入文件按行(每行代表 图中的一个顶点) 进行自动切分, 并将数据分发到每个 Map 任务, 其中 key 值为 ID,value 值为 distance、flag 和 Adjacent infor图 5 Map 算法过程mation;(2)Map 任务的执行:接收 key/value 对,当 value 中的 flag 的 值为 1 时,则处理当前顶点,主要处理当前顶点的邻接点,并将其邻接点的 flag 也置为 1,最后产生临时的 key/value 对集;图 6 Reduce 过程的输入和输出(3)临时结果的分组:MapReduce 框架对 Map
10、 执行过程输出 的临时结果进行分组, 将相同的 key 值即 ID 号合并成同一组,并将其分发给空闲的 Reduce;(4)Reduce 任务的执行:接收 key/value 对,对相同 ID 的 value进行合并,找到当前的最短路径;(5)MapReduce 的迭代:如图 3 所示,每次 Reduce 后的结果 又分发给下一轮的 Map 过程,通过多次迭代寻找到最终的最短 路径。当没有发现更好的距离时,节点间的遍历会停止,本文中是以 flag 位来判断的, 即当 reduce 中所有记录的 flag 位都不为1 时,则停止迭代,算法结束。2.1 Map 过程Map 函数对整个图的结构进行遍
11、历,采用 BFS 算法(即广度优先算法)思路,按层依次遍历整个图。Map 函数根据所接到的图 7 Reduce 算法过程key/value 对(即每个顶点的相关信息)来产生相关的输出。输出 主要分两种,一种是本身结点的信息,在处理完后,仅对信息的标志位进行更改;一种是对本结点的邻接点进行遍历。具体如图 4所示。图 4 Map 过程的输入和输出本文将图 1 中的有向图 G 的顶点 V0 的基本信息作为 Map 图 8 基于 MapReduce 的有向图 G 的第一次迭代过程 的输入,其输入值为0,经过 Map 函数2.3 MapReduce 的迭代过程执行后,其输出结果为0,、,详细过程可参见图
12、 3。业的 Reduce 输出作为下一个 MapReduce 作业的 Map 输入,这Map 算法过程如图 5 所示。样就形成了整个工作链。当某个作业的输出中所有的节点都没2.2 Reduce 过程有标志位为 1 的节点时,则停止迭代,算法终结。具体可参见图 3Reduce 过程对从各个 Map 对各顶点的处理结果进行聚集中所示的整个算法执行过程,图 8 给出了基于 MapReduce 的有运算,取相同 ID 中最小的距离,修改标志位,并加上邻接点信息,向图 G 的第一次迭代过程。具体如图 6 所示。对于图 1 中的有向图 G 的顶点 V2,其 Reduce 的输入值为、,经过 Reduce
13、过程处理后,其输出结Hadoop 是由雅虎资助的开源项目, 是一个类似于 Google 果为,详细过程可参见图 3。“云计算”的技术平台,专注于海量数据存储、处理的分布式系 Reduce 算法过程如图 7 所示:统,同时提供了基于 Java 的 MapReduce 框架,能够将分布式应网 络 与 通 信微计算机信息2011 年第 27 卷第 12 期- 98 -120 元 / 年 邮局订阅号:82-946现场总线技术应用 200 例用部署到大型廉价集群上。Hadoop 能够实现高效计算,存储的核心在于其可运行于大规模集群上的分布式文件系统 HDFS (Hadoop Distributed Fi
14、le System)以及 MapReduce 分布式并行编程框架。文中的实验采用的是 Hadoop 完全分布式集群环境,整个基 于 MapReduce 的单源最短路径算法的程序编写由 Java 语言来 实现。采用 8 台实体机进行完全分布式集群的搭建,每个节点的 运行环境如下:WindowsXP、JDK、Cygwin 和 Hadoop。且每台机器 的配置为:Intel (R) Pentium (R) 4 CPU 3.0GHz、1 GB RAM 及80GB 可用硬盘空间。其中一台机器作 jobTracker,namenode 为 Master,其余机器皆作 datanode,TaskTracke
15、r 为 slave。对上述算法 描述的图 1 的每次迭代结果片段数据如表 1 所示:实验中, 根据所给数据量较小的情况下, 采用多节点的Hadoop 计算速度明显不如采用 Hadoop 单节点的速度快, 也比 Hadoop 并行技术的方式慢很多。因此,对于小规模的运算,不适 宜采用 Hadoop。为了能进一步地比较实验结果, 在实验中分别测试了图的 顶点个数为 10000 和 90000 来做了测试, 表 2 给出了不同节点数下基于 MapReduce 的单源最短路径算法的并行加速比的测 试与比较,且在图 9 中作出了曲线比较。图 9 加速比测试比较由图 9 中的数据可以看出, 在数据规模即顶
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MapReduce 单源最短 路径 算法 研究
链接地址:https://www.31ppt.com/p-2396539.html