- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于网页链接分类PageRank并行算法
基于网页链接分类PageRank并行算法
摘要:针对串行PageRank算法在处理海量网页数据时效率低下的问题,提出一种基于网页链接分类的PageRank并行算法。首先,将网页按照网页所属网站分类,为来自不同站点的网页设置不同的权重;其次,利用Hadoop并行计算框架,结合MapReduce分而治之的特点,并行计算网页排名;最后,采用一种包含3层:数据层、预处理层、计算层的数据压缩方法,对并行算法进行优化。实验结果表明,与串行PageRank算法相比,所提算法在最好情况下结果准确率提高了12%,计算效率提高了33%。
关键词:链接分类;Hadoop;PageRank;MapReduce;数据压缩
中图分类号: TP338.6
文献标志码:A
0 引言
1998年4月,在第七届国际WWW(World Wide Web)大会上,Page等[1]提出了PageRank算法。这是一种基于网页链接的排序算法,根据网页之间的链接结构来计算网页的重要性,从而实现网页排序。Google搜索引擎使用该算法对网页进行了准确的排名[2]。
随着信息技术的发展,网页数量急剧增加,采用串行PageRank算法迭代计算网页排名时,需要消耗大量的存储和计算资源,且计算效率相当低下,寻求一种高效排名算法势在必行。Hadoop是Apache公司提出的开源分布式计算框架,该框架下的MapReduce并行编程模型非常适合于海量数据的并行计算[3-5]。
作为并行计算研究的重要内容之一,MapReduce框架近年来成为国内外学者研究的热点。文献[6-9]针对PageRank在MapReduce下的并行化研究作了详细介绍。文献[6]提出在海量数据下使用并行技术实现的PageRank算法,将串行的PageRank算法利用Hadoop下MapReduce并行框架来完成,提高了算法效率和处理的数据量。但是该算法没有在MapReduce框架下对PageRank算法进行优化,导致迭代过程中产生大量中间数据,严重消耗存储资源。文献[7]以PageRank算法为例,对图算法的并行化进行了优化研究,提出每次迭代完成后引入一个reshuffle过程,将图结构重新排列,有利于数据的聚集和全局排序。但该算法增加自定义的reshuffle过程来实现MapReduce,并行框架需要重新设计,且编程复杂。文献[8-9]基于Hadoop框架下的MapReduce将PageRank算法中网页关系转化为块的关系来并行化处理,降低了中间数据量,提高了算法效率。但是各个块的内聚性不高,导致数据本地聚集性差,增加了集群节点之间的I/O开销和网络负载。
为此,针对以上问题本文对PageRank算法进行优化,将整个网页链接结构以网站为单位分类,用一个网站代替单个网页进行MapReduce计算,进而提出一种基于网页链接分类的PageRank并行算法。在HadoopMapReduce框架的基础上,优化后的算法可降低Map和Reduce之间传输的数据量和网络负载,提高中间数据的本地聚集性。在算法并行化过程中,本文对原始数据使用Hash映射、HadoopLZO(Hadoop LempelZivOberhumer)压缩[10]、combiner过程添加等3层数据压缩方法,从不同粒度对数据进行压缩,减少存储和计算资源的消耗。
1.2 Hadoop
Hadoop是Apache软件基金会提出的开源框架,包括MapReduce并行编程模型的接口和HDFS(Hadoop Distributed File System)两个部分。MapReduce是由谷歌提出的并行编程模型[3],该模型将海量数据解析为KeyValue对的形式,经过映射(Map)和规约(Reduce)过程完成数据的并行分析和计算。首先,将数据切分成为一个个片(Split),按照定义好的输入格式,转化为Map的输入。在Map阶段,输入数据由用户自定义的Map函数处理,并映射成KeyValue对,经洗牌(shuffle)过程自动排序后输出给Reduce端;在Reduce阶段,将具有相同Key值的Value按照用户定义的方式聚合。整个过程如图1所示。
HadoopMapReduce框架由运行在一个Master节点上的Jobtracker服务和运行在多个Slave节点上的Tasktracker服务组成。Master节点管理的Jobtracker将任务划分为多个Tasktracker,分别运行于Slave节点上。Jobtracker管理和监督Tasktracker的完成情况,Tasktracker各自完成所在节点的数据处理,实现大规模数据的并行处理。
2.1 基于链接分类的PageRank算法
原创力文档


文档评论(0)