CN103279328A - 基于Haloop的BlogRank算法并行化处理的构建方法 - Google Patents
基于Haloop的BlogRank算法并行化处理的构建方法 Download PDFInfo
- Publication number
- CN103279328A CN103279328A CN2013101199376A CN201310119937A CN103279328A CN 103279328 A CN103279328 A CN 103279328A CN 2013101199376 A CN2013101199376 A CN 2013101199376A CN 201310119937 A CN201310119937 A CN 201310119937A CN 103279328 A CN103279328 A CN 103279328A
- Authority
- CN
- China
- Prior art keywords
- data
- blogrank
- algorithm
- haloop
- blog
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开一种基于Haloop的BlogRank算法并行化处理的构建方法,对博客数据进行预处理;将算法每一次迭代过程抽象成MapReduce模型,该模型由2个具体的MapReduce过程组成;分离迭代过程中的循环不变量和循环变量;设置合适的迭代终止条件和最大迭代次数;运用Haloop框架提供的编程接口进行计算。经过试验,在大数据量的情况下,相对于传统的运用矩阵的单机计算方式和运用Hadoop框架的分布式计算方式,运用Haloop框架的构建方法明显提高了运行效率,且数据量越大,效率提高得越多。说明了该方法能够有效地降低迭代对于BlogRank算法执行效率的影响,以及良好地适应该算法处理大规模数据的需求。
Description
技术领域
本发明涉及一种基于Haloop框架的、BlogRank算法并行化处理的构建方法,属于云计算领域的算法并行化研究。
背景技术
随着互联网的高速发展,越来越多的用户使用博客。博客系统中博文的更新越来越频繁,数量也越来越多。如何使用户短时间内在海量的博文中搜索到自己想要的博文呢?建立一个良好的、高效的博客评价体系是至关重要的。BlogRank算法是基于博客计量学和PageRank算法提出的,它是用于量化博客“影响度”的一种算法,是博客评价体系中的重要一环,而该算法最终求得的结果为所有博客的排名值(即BR值,介于1至10之间,BR值越大说明该博客越有价值)。BlogRank算法的输入为数据集中所有博客的初始BR值(由用户设定)以及其相互的链接关系,输出为这些博客相应的最终BR值。它的公式如下:
然而,由于博客数据具有海量和更新频繁的特点,以及BlogRank算法本质上是一个基于Markov过程的迭代算法,因此它的运行效率往往是难以保证的。而现有的关于BlogRank算法的研究主要集中于两个方面:改进BlogRank算法本身,以及改进BlogRank算法的实现机制。它们都旨在于从减少算法的迭代次数、加快算法的收敛速度、将算法并行化等方面来提高算法的运行效率,然而,在海量数据的背景下,这些改进还不足以使得算法效率得到显著的提升。
发明内容
发明目的:针对现有技术中存在的问题,引入Haloop这一迭代式MapReduce模型的实现框架。本发明提供一种基于Haloop的BlogRank算法并行化处理的构建方法,能够有效地降低迭代对于BlogRank算法执行效率的影响,以及良好地适应该算法处理大规模数据的需求。
技术方案:一种基于Haloop的BlogRank算法并行化处理的构建方法,利用Haloop框架显式地支持迭代的特性,将BlogRank算法的一次迭代过程抽象为两个MapReduce过程(Job1和Job2),实现BlogRank算法的并行化。
主要的实现步骤如下:
步骤1:运用MapReduce编程模型的计算原理进行数据预处理,即:将数据按照Haloop框架的用户配置进行备份、拷贝、转移等等;此外,我们将一次迭代过程转化成两个MapReduce任务,第一个MapReduce任务(Job1)用于计算每个出链博客所获得BR贡献量,第二个MapReduce任务(Job2)用于计算汇总所有的BR值贡献量;
步骤2:在Job1的Map阶段,在各节点中并行地执行Map任务,将输入数据中的循环不变量(即:博客间的链接关系)和循环变量(即:博客当前排名)分离开来;
步骤3:在Job1的Reduce阶段,运用BlogRank算法公式并行地计算出每一个出链博客所获得的本地BR值贡献量;
步骤4:在Job2的Map阶段,将Job1的输出数据进行排序整合,不经过计算处理直接输出作为该MapReduce任务的中间结果;
步骤5:在Job2的Reduce阶段,按照BlogRank算法的公式对每一个博客所获得的BR值贡献量进行合计;形成当前的博客BR值表,并进行临界点检测;
步骤6:若超过用户设定的最大迭代次数或结果达到临界点,则停止迭代,向Master节点输出结果;否则,转到步骤2。
有益效果:与现有技术相比,本发明提供的基于Haloop的BlogRank算法并行化处理的构建方法,充分利用Haloop框架支持迭代的特性,以及MapReduce模型处理大规模数据的能力,实现BlogRank算法的并行化,进而提高算法运行的效率。实验结果表明,本发明方法能够大大减少在迭代过程中不必要的数据传输,降低了I/O消耗,从而大大提升BlogRank算法执行的效率。 在理论上极大地降低了迭代和海量数据对于算法执行效率的影响。
附图说明
图1为本发明来源思路图;
图2为本发明实施例的BlogRank算法并行化处理流程图;
图3为Job1中Map任务的输入输出图;
图4为Job1中Reduce任务的输入输出图;
图5为Job2中Map任务的输入输出图;
图6为Job2中Reduce任务的输入输出图;
图7为本发明实施例方法与传统方法的结果对比图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1所示,本实施例根据基于MapReduce模型的BlogRank算法并行化思想,对博客数据进行预处理;将算法每一次迭代过程抽象成MapReduce模型,根据迭代过程中数据的可变性来区分输入数据集,设定合适的迭代终止条件和最大迭代次数;运用Haloop框架提供的编程接口进行计算。
如图2所示,我们提出了BlogRank算法并行化的具体思路是本发明的关键所在,下面结合附图和实施例对本发明的步骤作进一步详细说明。
(1) 数据预处理:根据集群中的计算节点数来设定合适的Map任务和Reduce任务的数量,从而进一步确定Map任务中输入分片的大小及其拷贝的数量,随后进行实际的备份、转移等处理过程;
(2) 在Job1的Map阶段,Map任务的主要目的是分离循环不变量和循环变量。如图3所示,在其输出中,通过做标记的形式表示循环不变数据和循环变化数据,扫描value中的三元关系列表,将原来的三元关系拆分。将每一对博客链接提取出来,标记为“#”,表示为循环不变数据,输出格式为<源博客地址,出链博客地址,#> ;将每一个博客及其BR值提取出来,标记为“*”,表示为循环变化数据,输出格式为<源博客地址,源博客BR值,*>。
(3) 在Job1的Reudce阶段,Reduce函数用于计算出链博客的获得的本地BR值贡献量。如图4所示,在Reduce任务执行的过程中,通过使用输入缓存(Reducer Input Cache),将Map任务输出中的循环不变数据缓存起来,也就是将输入数据中标记为“#”的数据项缓存起来。同时,我们运用BlogRank算法公式来计算每一个出链博客所获得的本地BR值贡献量,形成输出。输出数据的格式为:<出链博客地址,BR值贡献量>。
(4) 在Job2的Map阶段,如图5所示,将Job1中Reduce任务的输出读取出来,原封不动地输出,通过sort和shuffle过程,使其作为Reduce任务的输入。
(5) 在Job2的Reduce任务中,我们合计每一个博客所获得的BR值贡献量,形成当前的博客BR值表,并进行临界点检测。如图6所示,每一个Reduce任务的输出将会被缓存至Reducer输出缓存(Reducer Output Cache)中。该Reduce任务的输入格式为:<博客地址,list(BR值贡献量)>;输出格式为:<博客地址,BR值>。
(6) 若超过用户设定的最大迭代次数或结果达到临界点,则停止迭代,向Master节点输出结果;否则,转到(2)。
如图7所示,在大数据量(超过10万篇博客和50万个链接关系)的情况下,相对于传统的运用矩阵的单机计算方式和运用Hadoop框架的分布式计算方式,运用Haloop框架的构建方法明显运行时间少,进而提高了运行效率,且数据量越大,效率提高得越多。
Claims (4)
1.一种基于Haloop的BlogRank算法并行化处理的构建方法,其特征在于,包括如下步骤:
步骤1:运用MapReduce编程模型的计算原理进行数据预处理,即:将数据按照Haloop框架的用户配置进行备份、拷贝、转移;此外,将一次迭代过程转化成两个MapReduce任务,第一个MapReduce任务用于计算每个出链博客所获得BR贡献量,第二个MapReduce任务用于计算汇总所有的BR值贡献量;
步骤2:在第一个MapReduce任务的Map阶段,在各节点中并行地执行Map任务,将输入数据中的循环不变量和循环变量分离开来;
步骤3:在第一个MapReduce任务的Reduce阶段,运用BlogRank算法公式并行地计算出每一个出链博客所获得的本地BR值贡献量;
步骤4:在第二个MapReduce任务的Map阶段,将Job1的输出数据进行排序整合,不经过计算处理直接输出作为该MapReduce任务的中间结果;
步骤5:在第二个MapReduce任务的Reduce阶段,按照BlogRank算法的公式对每一个博客所获得的BR值贡献量进行合计;形成当前的博客BR值表,并进行临界点检测;
步骤6:若超过用户设定的最大迭代次数或结果达到临界点,则停止迭代,向Master节点输出结果;否则,转到步骤2。
2.如权利要求1所述的基于Haloop的BlogRank算法并行化处理的构建方法,其特征在于,在所述步骤2中,通过做标记的形式表示循环不变数据和循环变化数据,将每一对博客链接提取出来,标记为“#”,表示为循环不变数据,将每一个博客及其BR值提取出来,标记为“*”,表示为循环变化数据。
3.如权利要求2所述的基于Haloop的BlogRank算法并行化处理的构建方法,其特征在于,在所述步骤3中,通过使用输入缓存,将Map任务输出中的循环不变数据缓存起来,也就是将输入数据中标记为“#”的数据项缓存起来。
4.如权利要求1所述的基于Haloop的BlogRank算法并行化处理的构建方法,其特征在于,在所述步骤5中,将每一个Reduce任务的输出缓存至Reducer输出缓存中,并进行本地化的临界点检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101199376A CN103279328A (zh) | 2013-04-08 | 2013-04-08 | 基于Haloop的BlogRank算法并行化处理的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101199376A CN103279328A (zh) | 2013-04-08 | 2013-04-08 | 基于Haloop的BlogRank算法并行化处理的构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103279328A true CN103279328A (zh) | 2013-09-04 |
Family
ID=49061871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101199376A Pending CN103279328A (zh) | 2013-04-08 | 2013-04-08 | 基于Haloop的BlogRank算法并行化处理的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103279328A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617087A (zh) * | 2013-11-25 | 2014-03-05 | 华中科技大学 | 一种适合迭代计算的MapReduce优化方法 |
CN103699442A (zh) * | 2013-12-12 | 2014-04-02 | 深圳先进技术研究院 | MapReduce计算框架下的可迭代式数据处理方法 |
WO2016008317A1 (zh) * | 2014-07-14 | 2016-01-21 | 华为技术有限公司 | 数据处理方法和中心节点 |
CN111191550A (zh) * | 2019-12-23 | 2020-05-22 | 初建刚 | 一种基于图像锐度自动动态调整的视觉感知装置及方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120330864A1 (en) * | 2011-06-21 | 2012-12-27 | Microsoft Corporation | Fast personalized page rank on map reduce |
-
2013
- 2013-04-08 CN CN2013101199376A patent/CN103279328A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120330864A1 (en) * | 2011-06-21 | 2012-12-27 | Microsoft Corporation | Fast personalized page rank on map reduce |
Non-Patent Citations (4)
Title |
---|
APOSTOLOS KRITIKOPOULOS ET AL.: "BLOGRANK: Ranking on the blogosphere", 《PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON WEBLOGS AND SOCIAL MEDIA(ICWSM 2007)》, 31 January 2007 (2007-01-31), pages 1 - 2 * |
YINGYI BU.ET AL.: "HaLoop: Efficient Iterative Data Processing on Large Clusters", 《PROCEEDINGS OF THE VLDB ENDOWMENT》, vol. 3, no. 1, 30 September 2010 (2010-09-30), XP002695399 * |
YINGYI BU.ET AL.: "The HaLoop approach to large-scale iterative data analysis", 《THE VLDB JOURNAL》, vol. 21, no. 2, 1 April 2012 (2012-04-01), pages 169 - 190, XP035032141, DOI: 10.1007/s00778-012-0269-7 * |
王凯: "MapReduce集群多用户作业调度方法的研究与实现", 《国防科学技术大学硕士学位论文》, 29 February 2012 (2012-02-29) * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617087A (zh) * | 2013-11-25 | 2014-03-05 | 华中科技大学 | 一种适合迭代计算的MapReduce优化方法 |
CN103617087B (zh) * | 2013-11-25 | 2017-04-26 | 华中科技大学 | 一种适合迭代计算的MapReduce优化方法 |
CN103699442A (zh) * | 2013-12-12 | 2014-04-02 | 深圳先进技术研究院 | MapReduce计算框架下的可迭代式数据处理方法 |
WO2016008317A1 (zh) * | 2014-07-14 | 2016-01-21 | 华为技术有限公司 | 数据处理方法和中心节点 |
CN105335135A (zh) * | 2014-07-14 | 2016-02-17 | 华为技术有限公司 | 数据处理方法和中心节点 |
CN105335135B (zh) * | 2014-07-14 | 2019-01-08 | 华为技术有限公司 | 数据处理方法和中心节点 |
CN111191550A (zh) * | 2019-12-23 | 2020-05-22 | 初建刚 | 一种基于图像锐度自动动态调整的视觉感知装置及方法 |
CN111191550B (zh) * | 2019-12-23 | 2023-05-02 | 初建刚 | 一种基于图像锐度自动动态调整的视觉感知装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kwon et al. | A study of skew in mapreduce applications | |
US9053067B2 (en) | Distributed data scalable adaptive map-reduce framework | |
CN106164867B (zh) | 数据的增量并行处理 | |
Kajdanowicz et al. | Parallel processing of large graphs | |
CN105205105B (zh) | 一种基于storm的数据ETL系统及处理方法 | |
CN105022670A (zh) | 一种云计算平台中的异构分布式任务处理系统及其处理方法 | |
CN105550268A (zh) | 大数据流程建模分析引擎 | |
Dede et al. | Processing Cassandra datasets with Hadoop-streaming based approaches | |
Osman et al. | Towards real-time analytics in the cloud | |
CN106055311A (zh) | 基于流水线多线程的MapReduce任务并行化方法 | |
CN103279328A (zh) | 基于Haloop的BlogRank算法并行化处理的构建方法 | |
Wei et al. | Incremental FP-Growth mining strategy for dynamic threshold value and database based on MapReduce | |
CN105468756A (zh) | 一种海量数据处理系统的设计和实现方法 | |
CN103995827B (zh) | MapReduce计算框架中的高性能排序方法 | |
CN103116636B (zh) | 基于特征空间分解的文本大数据主题挖掘方法和装置 | |
CN103559017A (zh) | 基于gpu异构计算平台的字符串匹配方法及系统 | |
CN104299170B (zh) | 间歇性能源海量数据处理方法 | |
CN110502337B (zh) | 针对Hadoop MapReduce中混洗阶段的优化系统 | |
Hong et al. | The study of improved FP-growth algorithm in MapReduce | |
CN103744899A (zh) | 一种基于分布式环境的海量数据快速分类方法 | |
RU2012141077A (ru) | Способ и система для хранения данных графов | |
CN104021169A (zh) | 一种基于SDD-1算法的Hive连接查询方法 | |
Li et al. | Implementation and optimization of distributed stream processing system based on fpga | |
Zhao et al. | Creative Combination of Legacy System and Map Reduce in Cloud Migration | |
CN103678695A (zh) | 一种并行处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130904 |