一种并行处理方法和装置与流程

文档序号:12926970阅读:325来源:国知局
一种并行处理方法和装置与流程
本发明实施例涉及计算机技术领域,尤其涉及一种并行处理方法和装置。发明背景随着互联网的发展,进入了信息爆炸的时代,对大量信息的并行处理可以提高处理效率。目前,较为熟知的并行处理系统如hadoop系统(属于一种分布式系统基础架构)、EMR(ElasticMapReduce)系统。但是,对于任务的并行处理,上述hadoop系统或EMR系统,需要严格按照map、reduce两个步骤进行处理,map指的是对原始的文档进行按照map规则进行处理,输出中间结果,reduce指的是按照reduce规则对中间结果合并。如果任务存在多个步骤(大于2个步骤)的处理,则需要通过提交多次,每次输入用户的任务运行参数来完成多个步骤处理,因此,对于用户使用上来说,较复杂。

技术实现要素:
本发明实施例的目的是提供一种并行处理方法和装置,实现多个步骤处理的简单化。一方面,本发明实施例提供一种并行处理方法,包括,接收多个任务处理请求,根据所述任务处理请求携带的业务标识,确定任务对应的业务信息;根据所述任务对应的业务信息,采用多个任务步骤对所述多个任务进行并行处理,所述多个任务步骤的步骤个数大于等于2。另一方面,本发明实施例提供一种并行处理装置,包括,接收单元,用于接收多个任务处理请求,根据所述任务处理请求携带的业务标识,确定任务对应的业务信息;处理单元,用于根据所述任务对应的业务信息,采用多个任务步骤对所述多个任务进行并行处理,所述多个任务步骤的步骤个数大于等于2。本发明实施例的并行处理方法和装置,采用多个任务步骤对任务进行并行处理,而且,根据业务标识确定业务信息对任务进行处理,不需要反复提交用户的任务运行参数,实现多个步骤处理的简单化。附图简要说明图1为本发明实施例并行处理方法的流程示意图;图2为本发明实施例并行处理装置的构成示意图;图3为本发明实施例并行处理装置一应用场景下的构成示意图;图4为本发明实施例并行处理方法中任务步骤关系示意图一;图5为本发明实施例并行处理方法中任务步骤关系示意图二;图6为本发明实施例并行处理方法一应用场景下的流程示意图。实施本发明的方式如图1所示,本发明实施例提供一种并行处理方法,包括:11、接收多个任务处理请求,根据所述任务处理请求携带的业务标识(ID),确定任务对应的业务信息。12、根据所述任务对应的业务信息,采用多个任务步骤对所述多个任务进行并行处理,所述多个任务步骤的步骤个数大于等于2。其中,所述多个任务步骤可以理解为采用大于等于2个步骤数对任务进行处理。本发明实施例的并行处理方法,采用多个任务步骤对任务进行并行处理,而且,根据业务标识确定业务信息对任务进行处理,不需要反复提交用户的任务运行参数,简单的实现多个步骤处理,克服了hadoop系统、EMR系统需要提交多次,每次输入用户的任务运行参数来完成多个步骤处理的缺陷。本发明实施例的并行处理方法,所述在接收多个任务处理请求之前,所述方法还可以包括:获取用户自定义的业务定义文件。解析所述业务定义文件,获取所述业务信息。生成业务标识,并建立业务标识与所述业务信息的对应关系。在本实施方式中,用户定义的业务定义文件可以作为某类业务的处理模版,从而作为该类业务下多个任务运行的依据。在提交任务时,提供业务标识即可确定业务信息,不必每次都输入任务运行参数,减少了用户在任务运行时的操作,便于用户的使用。具体而言,所述业务信息,可以包括:任务定义信息:用于定义任务的容错级别和计算模型等。任务拆分信息:用于将任务拆分成多个任务步骤等。任务步骤关联信息:用于定义多个任务步骤之间的处理顺序。任务步骤信息:用于定义每个任务步骤的运行信息,运行信息包括:资源信息、用户程序以及用户设置等。可选的,运行信息还可以包括:多个任务步骤的处理模式,该处理模式为串行处理模式或者并行处理模式。当多个任务步骤的处理模式为所述串行处理模式时,多个所述任务步骤中前一个任务步骤的所有输出经过完整性检查后,作为多个所述任务步骤中后一个任务步骤的输入。即每一个任务步骤的输出都是多输出的,所有输出经过完整性检查后,才可以才作为输入进入下一个任务步骤。当多个任务步骤的处理模式为所述并行处理模式时,多个所述任务步骤中前一个任务步骤的任一个输出直接作为多个所述任务步骤中后一个任务步骤的输入。即每一个任务步骤的输出都是多输出的,但不需要所有输出经过完整性检查,一个任务步骤的任一个输出可以作为输入进入下一个任务步骤。可见,多个任务步骤可以并行处理,提高了处理能力,克服了hadoop系统、EMR系统需要2步骤且严格按顺序串行处理的缺陷。进一步的,所述根据任务对应的业务信息,采用多个任务步骤对任务进行处理的方式,可以包括:根据所述业务信息中的任务拆分信息,将所述任务拆分成多个任务步骤。根据所述业务信息中的任务步骤信息,获取任务步骤的用户程序,以及为所述任务步骤申请资源。根据所述业务信息中的任务步骤关联信息,占用申请到的资源,调用用户程序,对所述任务进行处理,直到按照多个任务步骤之间的处理顺序,完成多个所述任务步骤的处理。可选的,本发明实施例的并行处理方法,还可以包括:根据任务的优先级排序,优先处理优先级高的任务。或者,对任务的优先级进行调整,优先处理优先级高的任务。对任务的优先级进行调整的方式,可以包括:根据任务的等待时间和/或任务的完成时间进行优先级调整。如图2所示,对应上述实施例的并行处理方法,本发明实施例提供一种并行处理装置,包括:接收单元21,用于接收多个任务处理请求,根据所述任务处理请求携带的业务标识(ID),确定任务对应的业务信息;处理单元22,用于根据所述任务对应的业务信息,采用多个任务步骤对所述多个任务进行并行处理,所述多个任务步骤的步骤个数大于等于2。本发明实施例的并行处理装置,采用多个任务步骤对任务进行并行处理,而且,根据业务标识确定业务信息对任务进行处理,不需要反复提交用户的任务运行参数,简单的实现多个步骤处理,克服了hadoop系统、EMR系统需要提交多次,每次输入用户的任务运行参数来完成多个步骤处理的缺陷。本发明实施例的并行处理装置,还可以包括:获取单元,用于获取用户自定义的业务定义文件。解析单元,用于解析所述业务定义文件,获取所述业务信息,生成业务标识,并建立业务标识与所述业务信息的对应关系。存储单元,用于存储所述业务标识与所述业务信息的对应关系。具体而言,业务信息可以包括:任务定义信息:用于定义任务的容错级别和计算模型等。任务拆分信息:用于将任务拆分成多个任务步骤等。任务步骤关联信息:用于定义多个任务步骤之间的处理顺序。任务步骤信息:用于定义每个任务步骤的运行信息,运行信息包括:资源信息、用户程序以及用户设置等。进一步的,处理单元22,具体可以用于:根据所述业务信息中的任务拆分信息,将所述任务拆分成多个任务步骤。根据所述业务信息中的任务步骤信息,获取任务步骤的用户程序,以及为所述任务步骤申请资源。根据所述业务信息中的任务步骤关联信息,占用申请到的资源,调用用户程序,对所述任务进行处理,直到按照多个任务步骤之间的处理顺序,完成多个所述任务步骤的处理。可选的,运行信息还可以包括:多个任务步骤的处理模式,该处理模式为串行处理模式或者并行处理模式,处理单元22,具体还可以用于:当多个任务步骤的处理模式为所述串行处理模式时,多个所述任务步骤中前一个任务步骤的所有输出经过完整性检查后,作为多个所述任务步骤中后一个任务步骤的输入。当多个任务步骤的处理模式为所述并行处理模式时,多个所述任务步骤中前一个任务步骤的任一个输出直接作为多个所述任务步骤中后一个任务步骤的输入。可选的,处理单元22,具体还可以用于:根据任务的优先级排序,优先处理优先级高的任务,或者,对任务的优先级进行调整,优先处理优先级高的任务。对任务的优先级进行调整的方式,可以包括:根据任务的等待时间和/或任务的完成时间进行优先级调整。本发明实施例的并行处理装置可以对应参考上述实施例的并行处理方法得以理解,相同内容,在此不作赘述。如图3所示,本发明实施例并行处理装置应用场景下的构成示意图。WebService31,负责用户web请求接受以及转发。如接收用户请求定义业务文件的请求,以及转发给业务定义模块32。WebService属于应用服务,可以参考现有技术得以理解,在此不作赘述。业务定义模块32,负责提供接口让用户定义业务定义文件。业务定义文件包含业务信息。业务信息可以包括任务定义信息,任务拆分信息,任务步骤关联信息,以及任务步骤信息。业务信息是任务调度器进行任务调度处理的依据,任务调度器及业务信息将在下文具体阐示。任务解析模块33,负责接收用户定义的业务定义文件(业务定义文件类型如xml或者json,等等),并将业务定义文件进行解析,获取用户定义的业务信息,并将其保存在数据库34中,同时返回业务信息对应的业务标识(ID)。数据库34可以是分布式数据库,分布式数据库可以参考现有技术得以理解,在此不作赘述。任务调度器35,负责接受WebService31发送来的任务处理请求。任务调度器35,可以用来根据业务的需求适配不同的计算模型,计算模型如hadoop系统的map、reduce模型,或者计算模型如多个步骤调度模型(步骤大于等于2)。任务调度器35,还可以用来实现优先级排序,或者优先级调整,或者将任务拆解并为任务分配资源及任务控制。资源管理器36,负责满足任务调度器35的资源申请、释放。具体而言,资源管理器36的主要功能可以包括资源管理、资源匹配、或者资源自动伸缩。任务运行模块37,负责任务的处理,调用用户开发的处理程序,处理任务调度器35分发下来的任务。集群管理模块38,负责处理并行任务的集群的自动化部署与监控。最底层支持物理机和VM(VirtualMachine,虚拟机)等各种异构硬件39。物理机可以包括个人电脑,工作站,或者各种应用服务器,等等。具体而言,业务信息可以包括:任务定义信息、任务拆分信息、任务步骤关联信息和任务步骤信息。(1)任务定义信息包括容错级别FaultTolerance和计算模型ProgramModel,分别为:FaultTolerance="Normal"ProgramModel="CMR"其中,CMR为CloudMapReduce,可以对应理解为一种多个步骤计算模型。可选的,计算模型还可以是hadoop系统或者EMR系统的计算模型,实现对两骤处理,实现本发明实施例并行处理装置对两骤处理的兼容。(2)任务拆分信息,如:根据用户的任务拆分信息,可以对用户提交的任务进行拆分(或者可默认系统提供的拆分函数),用于拆分后的结果继续下面任务的步骤处理。(3)任务步骤关联信息:可以定义多个(大于2个)任务步骤,而非hadoop系统的map、reduce两步,以及定义多个任务步骤之间的处理顺序,即多个任务步骤关系。克服了hadoop系统、EMR系统需要提交多次,每次输入用户的任务运行参数来完成多个步骤处理的缺陷。对于多个任务步骤关系的定义如下:其中,StepRatio为每一个Step之间的任务运行进程比例关系,调整StepRatio从而实现任务运行进程的调整。如图4所示的任务步骤关系,根据任务步骤关系,任务管理器进行任务的调度,运行一个Step后出现的结果作为下一个Step的输入继续运行,如Step1后进入Step2,再进入Step3。如图5所示包括分叉的任务步骤关系,如Step21和Step22并列位于Step1之后。(4)任务步骤信息,任务步骤信息可以包括每一个Step运行的资源信息、用户程序及用户其他设置。任务步骤信息如:其中“%”为相除运算的符号。调度器根据任务步骤信息进行资源的申请,进行任务处理。如图6所示,结合图3所示的并行处理装置,以媒体处理转码业务为例,可以提交多个转码任务,每个转码任务包括分片、转码、合并3个步骤,分别对应为step1、step2、step3为例,说明本发明实施例的并行处理方法,包括:步骤61:用户登陆。步骤62:业务定义模块接收到用户提交自定义业务定义文件的请求;返回业务定义页面。步骤63:业务定义模块完成业务的定义,并将生成的业务定义文件提交给业务解析模块。步骤64:业务解析模块接收到业务定义文件,将文件解析,获取用户定义的业务信息。步骤65:业务解析模块将业务信息保存在数据库中,以及返回业务信息的业务ID。步骤66:用户提交任务,WebService接收到用户提交的任务处理请求,在本实施方式中,所述任务处理请求可以包括用户的输入输出和所采用的业务ID。步骤67:WebService将所述任务处理请求转发给任务调度器。步骤68:任务调度器根据所述任务处理请求,找到用户定义的业务信息,在数据库中获取这些业务信息,以及返回用户提交成功,在本实施方式中,所述任务处理请求为业务ID。步骤69:任务调度器根据业务信息中的任务拆分信息,获取用户的应用程序。具体的,任务调度器根据任务拆分信息,将任务拆分为多个小任务,如step1、step2、step3,以便于更快的进行并行处理。步骤610:任务调度器向资源管理器申请资源。根据step1的任务步骤信息中的运行信息,任务调度器向资源管理器申请需要的资源(包括运行机器的规格、镜像、用户任务运行时所占用的资源:CPU、内存、虚拟内存、硬盘、网络带宽等)。资源管理器根据任务管理器提供的信息返回匹配的资源标识。可选的,任务调度器可以根据任务的优先级排序,选择优先级高的任务进行并发处理,或者任务调度器对优先级进行调整。步骤611:在申请的资源中运行任务。具体的,在启动资源时,会启动一个任务运行模块,用于任务运行和管理。任务调度器发送信息到资源中的任务运行模块。步骤612:任务运行模块到文件存储部件获取该step1的用户应用程序。步骤613:任务运行模块运行step1。如果Step1有了处理结果,任务调度器会根据任务步骤关联信息,找到Step2,再次向资源管理器申请Step2对应的资源运行任务,直到Step3执行结束。由于是多个步骤处理的,步骤68613是每一个步骤都会涉及到的,直到整个任务都下发成功。可选的,任务调度器在调度任务步骤时,需要指定中间步骤的输入输出,并在业务定义文件中定义了每一步是否是完成后输出。如果定义为不经过完整性检查和即时输出,则任务中每一个step的一个结果输出后就可以直接作为下一步的输入继续运行下一步,实现步骤的并行处理。反之,如果定义为需要经过完整性检查,则每个Step输出一批中间结果,需要对中间结果进行一定的处理,完全输出后,进行下一步,实现任务的串行处理。可选的,业务定义模块,业务解析模块,任务调度器,资源管理器,可以设置在同一或不同的服务器上。任务运行模块,文件存储部件可以设置在同一或不同的物理机或VM上。还需要说明的,用户在提交一类业务定义文件后(步骤6165),可用于同类的任务的运行,即用户提交多次同类型任务,可共用一个步骤6165提交的业务定义文件。用户可提交多个任务,WebService会转发到任务调度器中并行处理,实现一个业务定义文件供多个任务采用,实现任务的并行运行。如类似步骤66步骤613:步骤660:用户提交任务,WebService接收到用户提交任务处理的请求(包括用户的输入输出和所采用的业务ID)。步骤670:WebService将请求(包括用户的输入输出和所采用的业务ID)转发给任务调度器。步骤680:任务调度器根据请求的信息(业务ID),找到用户定义的业务信息,在数据库中获取这些业务信息,以及返回用户提交成功。步骤690:任务调度器根据业务信息中的任务拆分信息,获取用户的应用程序。步骤6100:任务调度器向资源管理器申请资源。资源管理器根据任务管理器提供的信息返回匹配的资源标识。步骤6110:任务调度器将为step1申请的资源通知给任务运行模块。步骤6120:任务运行模块到文件存储部件获取该step1的用户应用程序。步骤6130:任务运行模块运行step1。可见,采用多个任务步骤对任务进行并行处理,克服了hadoop系统、EMR系统需要提交多次,每次输入用户的任务运行参数来完成多个步骤处理的缺陷。而且,用户可提交多个任务,实现一个业务定义文件供多个同类型的任务采用,实现任务的并行运行。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1