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

文档序号:6499748阅读:152来源:国知局
基于MapReduce架构实现图处理的方法和装置制造方法
【专利摘要】本发明公开了一种基于MapReduce架构实现图处理的方法和装置,该方法包括:接收图处理作业的输入文件;利用获取的MapReduce任务的度数与执行时间的关系分布和所述图处理作业的度数分布预测所述图处理作业的MapReduce任务执行时间分布;根据预测的所述图处理作业的MapReduce任务执行时间分布将所述图处理作业的输入文件切分为MapReduce任务的输入数据分片。本发明实施例的方法能够实现均衡Map任务和Reduce任务的计算负载,从而高效地完成图处理作业。
【专利说明】基于MapReduce架构实现图处理的方法和装置
【技术领域】
[0001]本发明涉及图处理,更具体地,涉及一种基于MapReduce架构实现图处理的方法和装置。
【背景技术】
[0002]MapReduce是Google公司提出的一种用于大规模并行编程的软件架构。用于大规模数据集(大于1TB)上的并行运算。概念“Map (映射)”和“Reduce (化简)”及其主要思想,都是从函数式编程语言借来的。当前的MapReduce中间件实现要求应用开发者指定一个Map (映射)函数,用来把一组键值对映射成一些新的键值对(key-value pair),称作中间键值对;此外还要求应用开发者指定一个Reduce (化简)函数,用来对Map函数输出的中间键值对进行进一步处理。MapReduce架构多用于大规模数据集(大于1TB)的并行运算,并通过把对数据集的大规模操作分发给网络上的多个节点进行并行运算来实现伸缩性。在web访问日志分析、文档聚类、机器学习、数据统计、基于统计的机器翻译等领域有广泛的应用。例如,Hadoop就是一种MapReduce的实现。越来越多的云计算服务商在云计算系统中部署了 MapReduce架构。
[0003]图处理是大规模数据处理问题中的一类重要问题。在社交化网络中对各种实体关系的分析和数据挖掘中,以及各种优化求解问题中,就涉及到大量的图处理算法。图处理算法的MapReduce实现通常由多个迭代构成,而每个迭代则由多级Map任务和Reduce任务组成。图处理算法一般需要经过多次迭代,最后收敛形成一个稳定的解。
[0004]在现有的图处理问题中,输入数据集的规模非常大,难以在单个节点上完成运算。因此在基于MapReduce图算法的实现中,需要将由多个节点组成的大图分割为多个子图。基于图中节点和边分布的不均衡性,每个子图的基于Map任务或者Reduce任务的计算负载也是不均衡的,其根本原因是其计算复杂度和所用数据结构(例如邻接表)的存储复杂度成线性关系。通常的划分标准是按固定的数据大小对输入的图处理作业的数据集进行切分。因此,在当前的图算法的MapReduce实现中,常常会出现“长尾”现象,某些子计算任务(Map任务或者Reduce任务)的运行时间特别长,而其它已经完成的子任务必须等待所有的子任务完成才能进行下一个迭代的运算。造成这种现象的本质是因为图处理算法的计算复杂度和数据长度不一定成线性关系,例如是O (η2),O (η3)的关系。
[0005]因此需要一种均衡Map任务和Reduce任务的计算负载的图处理的方法。

【发明内容】

[0006]为解决以上问题,本发明提供了基于MapReduce架构实现图处理的方法和装置。
[0007]根据本发明的一个方面,提供了基于MapReduce架构实现图处理的方法,包括:接收提交的图处理作业的数据集;利用获取的MapReduce任务的度数与执行时间的关系分布和图处理作业的度数分布预测图处理作业的MapReduce任务执行时间分布;根据预测的MapReduce任务执行时间分布将图处理作业的数据集切分为MapReduce任务的输入数据分片。
[0008]根据本发明的另一个方面,提供了基于MapReduce架构实现图处理的装置,包括:接收模块,被配置为接收提交的图处理作业的数据集;预测模块,被配置为利用获取的MapReduce任务的度数与执行时间的关系分布和图处理作业的度数分布预测图处理作业的MapReduce任务执行时间分布;切分模块,被配置为根据预测的MapReduce任务执行时间分布将图处理作业的数据集切分为MapReduce任务的输入数据分片。
[0009]根据本发明实施例的基于MapReduce实现图处理的方法和装置,能够实现均衡Map任务和Reduce任务的计算负载,从而高效地完成图处理作业。
【专利附图】

【附图说明】
[0010]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0011]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
[0012]图2示出了现有的MapReduce架构的示意图。
[0013]图3示出根据本发明的实施例基于MapReduce架构实现图处理的方法。
[0014]图4不出根据执行时间分布将图处理作业的输入文件切分为MapReduce任务的输入数据分片的流程。
[0015]图5示出本发明基于MapReduce架构实现图处理作业的一个实施例。
[0016]图6示出根据本发明实施例的图处理作业的输入文件中的键值对。
[0017]图7示出根据本发明的实施例为每个节点的键值对生成新键值对的示例。
[0018]图8示出根据本发明的实施例对新键值对重新排序后的示例。
[0019]图9示出根据本发明实施例的Reduce任务的执行时间和度数的关系分布曲线。
[0020]图10示出根据本发明实施例的图处理作业的度数分布曲线。
[0021]图11所示的根据本发明实施例的Reduce任务处理该图处理作业的执行时间分布预测。
[0022]图12示出根据本发明实施例的Map任务的执行时间和度数的关系分布曲线。
[0023]图13示出根据本发明实施例的Map任务处理该图处理作业的执行时间分布预测。
[0024]图14示出根据本发明的实施例基于MapReduce实现图处理的装置1400。
【具体实施方式】
[0025]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0026]所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0027]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0028]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0029]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0030]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言一诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0031]下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0032]也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
[0033]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。[0034]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0035]如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0036]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0037]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0038]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0039]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0040]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0041]图2示出了现有的MapReduce架构的示意图,其中,作业调度器(Job Tracker)和多个任务服务器(Task Tracker)是该MapReduce架构中最基本的两个服务。通常,作业调度器部署在主节点上,接收用户所提交的作业,统一调度所有的作业,管理所有的任务服务器,将用户提交的每一个作业拆分成多个任务,包括Map任务和Reduce任务等,并负责将任务分配给相应的任务服务器。任务作为具体执行的基本单元,需要被分配到合适的任务服务器上执行。多个任务服务器轮询作业调度器,以获得任务。被分配执行Map任务的任务服务器是Map任务服务器,被分配执行Reduce任务的任务服务器是Reduce任务服务器。任务服务器一边执行一边向作业调度器汇报各个任务的状态,以此帮助作业调度器了解任务执行的整体情况。
[0042]具体地,输入文件被上传到在数据中心上部署的分布式文件系统,并根据分割规则而分成M个输入数据分片,每个片的大小一般在64MB到512MB范围内,具体可通过配置文件指定。执行任务所需的程序文件也被上传到分布式文件系统,包括任务配置文件(包括Map函数、合并函数、Reduce函数等)等。当作业调度器接收到来自客户端程序的任务请求后,将任务分解为多个任务,包括M个Map任务和R个Reduce任务,并负责将Map任务或Reduce任务分配给空闲的任务服务器。
[0043]然后,Map任务服务器根据所分配的任务,读取相应的输入数据分片,并从中分析出输入键值对(key-value pair)。接着,Map任务服务器调用Map函数map O以将输入键值对映射成中间键值对,Map函数所产生的中间键值对被缓存在内存中。缓存的中间键值对通过调用合并函数而对每个键值名(key)聚集该键值名的所有值,并通过调用分割函数而被分割成R片,然后被周期性地写入本地磁盘的R个区域中。当Map任务完成后,Map任务服务器向作业调度器通知任务完成以及中间键值对在本地磁盘上的位置信息。
[0044]当Reduce任务服务器从作业调度器获得Reduce任务后,根据位置信息从一个或多个Map任务服务器的本地磁盘上读取中间键值对,然后根据键值名对中间键值对进行排序,将相同键值名的值聚合在一起。Reduce任务服务器调用Reduce函数reduce O ,对这些中间键值对进行化简,并将Reduce函数的输出添加到该Reduce任务服务器的最终输出文件中。
[0045]根据本发明实施例的基于MapReduce实现图处理的方法,改变了现有的MapReduce架构中将输入文件分为固定大小的输入数据分片的分割规则,根据预测的图处理作业的执行时间分布将图处理作业的输入文件切分为任务的输入数据分片。
[0046]图3示出根据本发明的实施例基于MapReduce架构实现图处理的方法,该方法包括:在步骤S301,接收图处理作业的输入文件;在步骤S302,利用获取的MapReduce任务的度数与执行时间的关系分布和所述图处理作业的度数分布预测所述图处理作业的MapReduce任务执行时间分布;在步骤S303,根据预测的所述图处理作业的MapReduce执行时间分布将所述图处理作业的输入文件切分为MapReduce任务的输入数据分片。
[0047]在步骤S301,接收图处理作业的输入文件,图处理作业的输入文件包括图处理作业的多个节点以及多个节点的相邻节点的信息,其中每个节点由唯一的标识ID进行标识,图处理作业的输入文件是以对应于每个节点的键值对(key-value pair)进行组织的数据集,每一个键值对由键值名(key)和对应于该键值名的值(value)组成,其中键值名(key)为该键值对的唯一标识ID。
[0048]在步骤S302,利用获取的MapReduce任务的度数与执行时间的关系和所述图处理作业的度数分布预测所述图处理作业的MapReduce任务执行时间分布,其中MapReduce任务的度数与执行时间的关系分布表征Map任务或Reduce任务在执行不同度数的节点的执行时间,该分布的横坐标是度数,在此度数(degree)表示与某个节点相邻的节点的个数,纵坐标是任务的执行时间。根据本发明的一个实施例,任务的度数和执行时间的关系分布可以从该任务处理的历史记录中获取,根据本发明的另一个实施例,任务的度数和执行时间的关系分布可以从该任务的算法复杂度中获取。获取的任务的度数和执行时间的关系分布预先存储在数据字典中。图处理作业的度数分布可以从该图处理作业的历史记录中获取,对于首次处理的图处理作业,通过对图处理作业进行预处理获得图处理作业的度数分布,并将图处理作业的度数分布存储在数据字典中,在预测图处理作业中节点的执行时间分布时,从数据字典中获取任务的度数与执行时间的关系和图处理作业的度数分布。
[0049]在步骤S303,根据预测的所述图处理作业的MapReduce执行时间分布将所述图处理作业的输入文件切分为MapReduce任务的输入数据分片,图4不出根据执行时间分布将图处理作业的输入文件切分为MapReduce任务的输入数据分片的流程,在步骤S401,检测图处理作业的输入文件中对应于节点的键值对是否以该节点的度数进行构造,例如可以在输入文件的数据集中添加标签表明对应于节点的键值对是以该节点的度数进行构造的;响应于检测结果为是,则在步骤S402,按照度数对图处理作业的输入文件中的节点的键值对排序;在步骤S403,根据预测的执行时间分布将排序的节点的键值对切分为任务的输入数据分片;响应于检测结果为否,则在步骤S404,需要对图处理作业的输入文件进行预处理,用节点的度数构造图处理作业中对应于节点的键值对,具体地,用节点的度数构造图处理作业中对应于节点的键值对的键值名;然后再进行步骤S402和S403的处理,流程结束。
[0050]根据本发明的一个实施例,其中MapReduce任务的度数与执行时间的关系分布是Map任务的度数与执行时间的关系分布,利用Map任务的度数与执行时间的关系分布和图处理作业的度数分布预测图处理作业的Map任务执行时间分布,根据预测的Map任务执行时间分布将排序的节点的键值对平均切分为输入数据分片,由作业调度器(Job tracker)将切分好的输入数据分片指派给Map任务服务器执行。
[0051]根据本发明的一个实施例,其中MapReduce任务的度数与执行时间的关系分布是Reduce任务的度数与执行时间的关系分布,利用Reduce任务的度数与执行时间的关系分布和图处理作业的度数分布预测图处理作业的Reduce任务执行时间分布,根据预测的Reduce任务执行时间分布将排序的节点的键值对平均切分为输入数据分片并输入到Reduce任务的分区器(partitioner);由分区器向Reduce任务分配输入数据分片;由作业调度器将输入数据分片指派给Reduce任务服务器执行。
[0052]图5示出本发明基于MapReduce架构实现图处理作业的一个实施例,该图处理作业包括6个节点,输入的图处理作业的输入文件包括对应于每个节点的键值对(key-valuepair),图6示出根据本发明实施例的图处理作业的输入文件中的键值对,其中key为每个节点的标识ID,value为该图节点的相邻节点的标识ID。
[0053]第一步,Map任务服务器检测图处理作业的输入文件中对应于每个节点的键值对是否以该节点的度数进行构造,具体地,检测键值对的键值名是否以该节点的度数进行构造,例如,可以通过检测图处理作业的输入文件中是否添加标签来表示,如果检测到对应于每个节点的键值对未以该节点的度数进行构造,则为每个节点的键值对生成新键值名,新键值名的格式为“相邻节点个数_原始键值名”,图7示出根据本发明的实施例为每个节点的键值对生成新键值对的示例。
[0054]第二步,依赖MapReduce架构自身的分布式排序机制对新键值对进行排序,根据本发明的实施例,可以按照当前节点的度数对新键值对进行排序,图8示出根据本发明的实施例对新键值对重新排序后的示例。
[0055]第三步,任务服务器根据从数据库中获得的Reduce执行时间和度数的关系分布曲线(Reduce predictive equation)和图处理作业的度数分布曲线(degreedistribution)来做负载均衡的分区(partition),图9示出根据本发明实施例的Reduce任务的执行时间和度数的关系分布曲线,我们假设从之前的任务中得到Reduce任务的执行时间和度数是0(n2)的关系,并存储于数据字典中。图10示出根据本发明实施例的图处理作业的度数分布曲线,我们假设该图处理作业的度数分布由之前的任务获得,存放于数据字典中。
[0056]根据图9和图10,能够得到图11所示的根据本发明实施例的Reduce任务处理该图处理作业的执行时间分布预测。假设有两个Reduce任务,根据预测的执行时间分布,得知Reduce任务处理新键值对“4_3 I, 2,4,5”的执行时间是16个时间单位,处理新键值对“3_1 2,3,5”的执行时间是9个时间单位,处理新键值对“3_2 I, 3,5”的执行时间是9个时间单位,处理新键值对“3_51,2,3”的执行时间是9个时间单位,处理新键值对“2_4 3,6”的执行时间是4个时间单位,处理新键值对“ 1_6 4 ”的执行时间是I个时间单位,Reduce任务总共的执行时间是48个时间单位,对图6排序后的新键值对进行切分,得到Reduce任务的切分结果:将第一、二个新键值对“4_3 1,2,4,5”和“3_12,3,5”分配给Reduce I处理,将第三、四、五、六个新键值对“3_2 1,3,5”、“3_5 1,2,3”、“2_4 3,6”和“1_6 4”分配给Reduce 2处理,以此达到Reduce任务负载均衡的目的。如果没有本发明实施例的机制,第一至第三个键值对都会分配给Reduce 1,从而造成负载不均衡,导致性能降低。
[0057]从第二个MapReduce任务开始,所有节点的键值对已经是按照度数排序,因此对于Map任务而言,按上述第三步同样的方法,根据Map任务的执行时间和度数关系分布曲线和图处理作业的度数分布曲线来预测Map任务处理该图处理作业的执行时间分布。图12示出根据本发明实施例的Map任务的执行时间和度数的关系分布曲线,这里假设Map算法是0(N3)的,图处理作业的度数分布曲线在处理过程中没有发生变化,如图9所示,根据图9和图12,能够得到图13所示的根据本发明实施例的Map任务处理该图处理作业的执行时间分布预测。假设有两个Map任务,分别为Mapl和Map2,根据预测的执行时间分布,得知Map任务处理新键值对“4_31,2,4,5”的执行时间是64个时间单位,处理新键值对“3 j2,3,5”的执行时间是27个时间单位,处理新键值对“3_2 I, 3,5”的执行时间是27个时间单位,处理新键值对“3_5 I, 2,3”的执行时间是27个时间单位,处理新键值对“2_43,6”的执行时间是8个时间单位,处理新键值对“1_6 4”的执行时间是I个时间单位,Map任务总共的执行时间是127个时间单位,对图6排序后的新键值对进行切分,得到Map任务的切分结果:将第一新键值对“4_3 1,2,4,5”分配给Map I处理,将第二、三、四、五、六新键值对“3_1 2,3,5” “3_21,3,5”、“3_5 1,2,3”、“2_4 3,6”和“1_6 4”分配给 Map 2 处理,以此达到Map任务负载均衡的目的。
[0058]对于某些图迭代算法,当多轮迭代过程中图的拓扑结构发生了变化,则固定周期需要重新采集图处理作业的度数分布。由于每轮图处理作业的MapReduce任务处理都会由MapReduce的内置框架对基于度数的键排序,因此拓扑结构的变化不会影响切分的精度。
[0059]基于同一发明构思,本发明还提出一个基于MapReduce架构实现图处理的装置,图14示出根据本发明一个实施例的基于MapReduce架构实现图处理的装置1400,该装置包括:接收模块1401,被配置为接收提交的图处理作业的输入文件;预测模块1402,被配置为被配置为利用获取的MapReduce任务的度数与执行时间的关系分布和所述图处理作业的度数分布预测所述图处理作业的MapReduce任务执行时间分布;切分模块1403,被配置为根据预测的所述图处理作业的MapReduce任务执行时间分布将所述图处理作业的输入文件切分为MapReduce任务的输入数据分片。
[0060]根据本发明的实施例,其中切分模块包括:检测模块,被配置为检测图处理作业的输入文件中节点的键值对是否以该节点的度数进行构造;排序模块,被配置为响应于检测结果为是,则按照度数对图处理作业的输入文件中的节点的键值对排序;切分模块被配置为根据预测的任务执行时间分布将排序的键值对切分为任务的输入数据分片。
[0061]根据本发明的实施例,其中切分模块还包括:键值对构造模块,被配置为响应于检测结果为否,用节点的度数对图处理作业的输入文件中的节点的键值对进行构造,具体地,用节点的度数对图处理作业的输入文件中的节点的键值对的键值名进行构造;排序模块被配置为按照度数对构造后的键值对排序;切分模块被配置为根据预测的任务执行时间分布将排序的键值对切分为任务的输入数据分片。
[0062]根据本发明的实施例,其中任务的度数与执行时间的关系是Map任务的度数与执行时间的关系分布,预测模块被配置为利用Map任务的度数与执行时间的关系分布和图处理作业的度数分布预测图处理作业的Map任务执行时间分布。
[0063]根据本发明的实施例,其中切分模块被配置为:根据预测的Map任务执行时间分布将排序的节点的键值对平均切分为Map任务的输入数据分片;由作业调度器将Map任务的输入数据分片指派给Map任务服务器执行。
[0064]根据本发明的实施例,其中任务的度数与执行时间的关系是Reduce任务的度数与执行时间的关系分布,预测模块被配置为利用Reduce任务的度数与执行时间的关系分布和图处理作业的度数分布预测图处理作业的Reduce任务执行时间分布。
[0065]根据本发明的实施例,其中切分模块被配置为:根据预测的Reduce任务执行时间分布将排序的节点的键值对平均切分为Reduce任务的输入数据分片;将Reduce任务的输入数据分片输入到Reduce任务的分区器;由作业调度器将分区器输出的输入数据分片指派给Reduce任务服务器执行。
[0066]根据本发明的实施例,其中任务的度数与执行时间的关系是从该任务处理的历史记录中获取的,图处理作业的度数分布是从该图处理作业的历史记录中获取的。其中任务的度数与执行时间的关系是从该任务的算法复杂度中获取的。
[0067]其中各个模块的具体实现可以参照根据本发明的实施例的基于MapReduce架构实现图处理的方法,在此不一一赘述。
[0068]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0069]以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本【技术领域】的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本【技术领域】的其它普通技术人员能理解本文披露的各实施例。
【权利要求】
1.基于MapReduce架构实现图处理的方法,包括: 接收图处理作业的输入文件; 利用获取的MapReduce任务的度数与执行时间的关系分布和所述图处理作业的度数分布预测所述图处理作业的MapReduce任务执行时间分布; 根据预测的所述图处理作业的MapReduce任务执行时间分布将所述图处理作业的输入文件切分为MapReduce任务的输入数据分片。
2.根据权利要求1所述的方法,其中根据预测的所述图处理作业的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任务的度数与执行时间的关系分布是从该MapReduce任务处理的历史记录中获取的,图处理作业的度数分布是从该图处理作业的历史记录中获取的。
10.根据权利要求1所述的方法,其中MapReduce任务的度数与执行时间的关系分布是从该MapReduce任务的算法复杂度分析中获取的。
11.基于MapReduce架构实现图处理的装置,包括: 接收模块,被配置为接收提交的图处理作业的输入文件; 预测模块,被配置为利用获取的MapReduce任务的度数与执行时间的关系分布和所述图处理作业的度数 分布预测所述图处理作业的MapReduce任务执行时间分布; 切分模块,被配置为根据预测的所述图处理作业的MapReduce任务执行时间分布将所述图处理作业的输入文件 切分为MapReduce任务的输入数据分片。
12.根据权利要求11所述的装置,其中切分模块包括: 检测模块,被配置为检测图处理作业的输入文件中的节点的键值对是否以该节点的度数进行构造; 排序模块,被配置为响应于检测结果为是,则按照度数对所述节点的键值对排序; 切分模块被配置为根据预测的所述图处理作业的MapReduce任务执行时间分布将排序的节点的键值对切分为MapReduce任务的输入数据分片。
13.根据权利要求12所述的装置,其中切分模块还包括: 键值对构造模块,被配置为响应于检测结果为否,用节点的度数对图处理作业的输入文件中的节点的键值对进行构造; 排序模块被配置为按照度数对构造后的键值对排序; 切分模块被配置为根据预测的所述图处理作业的MapReduce任务执行时间分布将排序的节点的键值对切分为MapReduce任务的输入数据分片。
14.根据权利要求13所述的装置,其中键值对构造模块进一步被配置为:被配置为响应于检测结果为否,用节点的度数对图处理作业的输入文件中的节点的键值对的键值名进行构造。
15.根据权利要求12至14中任一项所述的装置,其中MapReduce任务的度数与执行时间的关系分布是Map任务的度数与执行时间的关系分布,预测模块被配置为利用获取的Map任务的度数与执行时间的关系分布和图处理作业的度数分布预测所述图处理作业的Map任务执行时间分布。
16.根据权利要求14所述的装置,其中切分模块被配置为: 根据预测的Map任务执行时间分布将排序的节点的键值对平均切分为Map任务的输入数据分片; 由作业调度器将Map任务的输入数据分片指派给Map任务服务器执行。
17.根据权利要求11至13中任一项所述的装置,其中MapReduce任务的度数与执行时间的关系分布是Reduce任务的度数与执行时间的关系分布,预测模块被配置为利用Reduce任务的度数与执行时间的关系分布和图处理作业的度数分布预测图处理作业的Reduce任务执行时间分布。
18.根据权利要求17所述的装置,其中切分模块被配置为: 根据预测的Reduce任务执行时间分布将排序的节点的键值对平均切分为Reduce任务的输入数据分片; 将Reduce任务的输入数据分片输入到Reduce任务的分区器; 由作业调度器将分区器输出的输入数据分片指派给Reduce任务服务器执行。
19.根据权利要求11所述的装置,其中MapReduce任务的度数与执行时间的关系分布是从该MapReduce任务处理的历史记录中获取的,图处理作业的度数分布是从该图处理作业的历史记录中获取的。
20.根据权利要求11所述的装置,其中MapReduce任务的度数与执行时间的关系分布是从该MapReduce任务的算 法复杂度分析中获取的。
【文档编号】G06F9/50GK103970604SQ201310043220
【公开日】2014年8月6日 申请日期:2013年1月31日 优先权日:2013年1月31日
【发明者】史巨伟, 陈冠诚, 刘弢, 王鲲, 王晨 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1