基于MapReduce架构实现图处理的方法和装置制造方法及图纸

技术编号:10296609 阅读:111 留言:0更新日期:2014-08-07 01:30
本发明专利技术公开了一种基于MapReduce架构实现图处理的方法和装置,该方法包括:接收图处理作业的输入文件;利用获取的MapReduce任务的度数与执行时间的关系分布和所述图处理作业的度数分布预测所述图处理作业的MapReduce任务执行时间分布;根据预测的所述图处理作业的MapReduce任务执行时间分布将所述图处理作业的输入文件切分为MapReduce任务的输入数据分片。本发明专利技术实施例的方法能够实现均衡Map任务和Reduce任务的计算负载,从而高效地完成图处理作业。

【技术实现步骤摘要】
基于MapReduce架构实现图处理的方法和装置
本专利技术涉及图处理,更具体地,涉及一种基于MapReduce架构实现图处理的方法和装置。
技术介绍
MapReduce是Google公司提出的一种用于大规模并行编程的软件架构。用于大规模数据集(大于1TB)上的并行运算。概念“Map(映射)”和“Reduce(化简)”及其主要思想,都是从函数式编程语言借来的。当前的MapReduce中间件实现要求应用开发者指定一个Map(映射)函数,用来把一组键值对映射成一些新的键值对(key-valuepair),称作中间键值对;此外还要求应用开发者指定一个Reduce(化简)函数,用来对Map函数输出的中间键值对进行进一步处理。MapReduce架构多用于大规模数据集(大于1TB)的并行运算,并通过把对数据集的大规模操作分发给网络上的多个节点进行并行运算来实现伸缩性。在web访问日志分析、文档聚类、机器学习、数据统计、基于统计的机器翻译等领域有广泛的应用。例如,Hadoop就是一种MapReduce的实现。越来越多的云计算服务商在云计算系统中部署了MapReduce架构。图处理是大规模数据处理问题中的一类重要问题。在社交化网络中对各种实体关系的分析和数据挖掘中,以及各种优化求解问题中,就涉及到大量的图处理算法。图处理算法的MapReduce实现通常由多个迭代构成,而每个迭代则由多级Map任务和Reduce任务组成。图处理算法一般需要经过多次迭代,最后收敛形成一个稳定的解。在现有的图处理问题中,输入数据集的规模非常大,难以在单个节点上完成运算。因此在基于MapReduce图算法的实现中,需要将由多个节点组成的大图分割为多个子图。基于图中节点和边分布的不均衡性,每个子图的基于Map任务或者Reduce任务的计算负载也是不均衡的,其根本原因是其计算复杂度和所用数据结构(例如邻接表)的存储复杂度成线性关系。通常的划分标准是按固定的数据大小对输入的图处理作业的数据集进行切分。因此,在当前的图算法的MapReduce实现中,常常会出现“长尾”现象,某些子计算任务(Map任务或者Reduce任务)的运行时间特别长,而其它已经完成的子任务必须等待所有的子任务完成才能进行下一个迭代的运算。造成这种现象的本质是因为图处理算法的计算复杂度和数据长度不一定成线性关系,例如是O(n2),O(n3)的关系。因此需要一种均衡Map任务和Reduce任务的计算负载的图处理的方法。
技术实现思路
为解决以上问题,本专利技术提供了基于MapReduce架构实现图处理的方法和装置。根据本专利技术的一个方面,提供了基于MapReduce架构实现图处理的方法,包括:接收提交的图处理作业的数据集;利用获取的MapReduce任务的度数与执行时间的关系分布和图处理作业的度数分布预测图处理作业的MapReduce任务执行时间分布;根据预测的MapReduce任务执行时间分布将图处理作业的数据集切分为MapReduce任务的输入数据分片。根据本专利技术的另一个方面,提供了基于MapReduce架构实现图处理的装置,包括:接收模块,被配置为接收提交的图处理作业的数据集;预测模块,被配置为利用获取的MapReduce任务的度数与执行时间的关系分布和图处理作业的度数分布预测图处理作业的MapReduce任务执行时间分布;切分模块,被配置为根据预测的MapReduce任务执行时间分布将图处理作业的数据集切分为MapReduce任务的输入数据分片。根据本专利技术实施例的基于MapReduce实现图处理的方法和装置,能够实现均衡Map任务和Reduce任务的计算负载,从而高效地完成图处理作业。附图说明通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。图1示出了适于用来实现本专利技术实施方式的示例性计算机系统/服务器12的框图。图2示出了现有的MapReduce架构的示意图。图3示出根据本专利技术的实施例基于MapReduce架构实现图处理的方法。图4示出根据执行时间分布将图处理作业的输入文件切分为MapReduce任务的输入数据分片的流程。图5示出本专利技术基于MapReduce架构实现图处理作业的一个实施例。图6示出根据本专利技术实施例的图处理作业的输入文件中的键值对。图7示出根据本专利技术的实施例为每个节点的键值对生成新键值对的示例。图8示出根据本专利技术的实施例对新键值对重新排序后的示例。图9示出根据本专利技术实施例的Reduce任务的执行时间和度数的关系分布曲线。图10示出根据本专利技术实施例的图处理作业的度数分布曲线。图11所示的根据本专利技术实施例的Reduce任务处理该图处理作业的执行时间分布预测。图12示出根据本专利技术实施例的Map任务的执行时间和度数的关系分布曲线。图13示出根据本专利技术实施例的Map任务处理该图处理作业的执行时间分布预测。图14示出根据本专利技术的实施例基于MapReduce实现图处理的装置1400。具体实施方式下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。所属
的技术人员知道,本专利技术可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本专利技术还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。本文档来自技高网
...
基于MapReduce架构实现图处理的方法和装置

【技术保护点】
基于MapReduce架构实现图处理的方法,包括:接收图处理作业的输入文件;利用获取的MapReduce任务的度数与执行时间的关系分布和所述图处理作业的度数分布预测所述图处理作业的MapReduce任务执行时间分布;根据预测的所述图处理作业的MapReduce任务执行时间分布将所述图处理作业的输入文件切分为MapReduce任务的输入数据分片。

【技术特征摘要】
1.基于MapReduce架构实现图处理的方法,包括:接收图处理作业的输入文件;利用获取的MapReduce任务的度数与执行时间的关系分布和所述图处理作业的度数分布预测所述图处理作业的MapReduce任务执行时间分布;根据预测的所述图处理作业的MapReduce任务执行时间分布将MapReduce任务的输入文件切分为MapReduce任务的输入数据分片。2.根据权利要求1所述的方法,其中根据预测的所述图处理作业的MapReduce任务执行时间分布将MapReduce任务的输入文件切分为MapReduce任务的输入数据分片包括:检测图处理作业的输入文件中的节点的键值对是否以该节点的度数进行构造;响应于检测结果为是,则按照度数对所述节点的键值对排序;根据预测的所述图处理作业的MapReduce任务执行时间分布将排序的节点的键值对切分为MapReduce任务的输入数据分片。3.根据权利要求2所述的方法,其中根据预测的所述图处理作业的MapReduce任务执行时间分布将所述图处理作业的输入文件切分为输入数据分片包括:响应于检测结果为否,用节点的度数对图处理作业的输入文件中的节点的键值对进行构造;按照度数对构造后的键值对排序;根据预测的所述图处理作业的MapReduce任务执行时间分布将排序的节点的键值对切分为MapReduce任务的输入数据分片。4.根据权利要求3所述的方法,其中用节点的度数对图处理作业的输入文件中的节点的键值对进行构造包括:用节点的度数对图处理作业的输入文件中的节点的键值对的键值名进行构造。5.根据权利要求2至4中任一项所述的方法,其中MapReduce任务的度数与执行时间的关系分布是Map任务的度数与执行时间的关系分布,利用获取的MapReduce任务的度数与执行时间的关系分布和图处理作业的度数分布预测图处理作业的MapReduce任务执行时间分布包括利用Map任务的度数与执行时间的关系分布和图处理作业的度数分布预测所述图处理作业的Map任务执行时间分布。6.根据权利要求5所述的方法,其中根据预测的所述图处理作业的MapReduce任务执行时间分布将排序的节点的键值对切分为MapReduce任务的输入数据分片包括:根据预测的Map任务执行时间分布将排序的节点的键值对平均切分为Map任务的输入数据分片;由作业调度器将Map任务的输入数据分片指派给Map任务服务器执行。7.根据权利要求2至4中任一项所述的方法,其中MapReduce任务的度数与执行时间的关系分布是Reduce任务的度数与执行时间的关系分布,利用获取的MapReduce任务的度数与执行时间的关系分布和图处理作业的度数分布预测所述图处理作业的MapReduce任务执行时间分布包括利用Reduce任务的度数与执行时间的关系分布和图处理作业的度数分布预测图处理作业的Reduce任务执行时间分布。8.根据权利要求7所述的方法,其中根据预测的所述图处理作业的MapReduce任务执行时间分布将排序的节点的键值对切分为MapReduce任务的输入数据分片包括:根据预测的Reduce任务执行时间分布将排序的节点的键值对平均切分为Reduce任务的输入数据分片;将Reduce任务的输入数据分片输入到Reduce任务的分区器;由作业调度器将分区器输出的输入数据分片指派给Reduce任务服务器执行。9.根据权利要求1所述的方法,其中MapReduce任务的度数与执行时间的关系分布是从该M...

【专利技术属性】
技术研发人员:史巨伟陈冠诚刘弢王鲲王晨
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1