用于分布式文件处理的方法和设备与流程

文档序号:12733666阅读:243来源:国知局
用于分布式文件处理的方法和设备与流程

本申请涉及计算机领域,尤其涉及一种用于分布式文件处理的技术。



背景技术:

分布式作业运行过程中,往往都会包含多个实例。在大型分布式系统中,实例的数目一般会从一千到十万的规模;在分布式作业运行过程中,各个节点都要进行分布式文件的创建、打开、关闭等操作。一般每秒抵达文件系统中心节点设备(分布式文件系统中心节点)的请求数会达到几万次到数十万。

例如,分布式作业场景中都会有所有实例一起打开一组文件的操作,而分布式作业都会包含两个最基本阶段:Map(映射)和Reduce(规约),Map阶段和Reduce阶段都会根据需要在分布式系统的各个机器上执行多个实例,实例的个数从几千到十万,实例会对不同的数据执行相同的计算逻辑。

现有技术中,每个Map实例会打开其输入文件,同时会创建一个输出文件来写入中间数据,Map实例共写出中间文件的数量为m;接着,每个Reduce实例会打开所有的中间文件,共有n个Reduce实例,则共有m*n次文件打开操作,因此,在这一过程中,包含了m*n次对于文件系统中心节点设备的请求。一般的分布式作业的规模为:Map实例总数为10000,Reduce实例总数为10000,经过计算,这种实现方式,对于分布式系统中心节点的请求次数达到了一亿以上。同时分布式系统的中心节点管理了海量文件的元数据信息,所以分布式文件系统的中心节点是性能的瓶颈。



技术实现要素:

本申请的目的是提供一种用于分布式文件处理的方法与设备,以降低分布式作业任务共同处理一组文件操作时向文件系统中心节点设备发送请求的次数,提升分布式系统的性能。

根据本申请的一个方面,提供了一种在主节点设备端用于分布式文件处理的方法,包括:

基于分布式作业任务向文件系统中心节点设备发送请求,以获取关于所述分布式作业任务的一组分布式文件的元信息;

将所述分布式作业任务分配给若干从节点设备进行处理;

基于所述从节点设备所发送的元信息读取请求,将所获取的分布式文件的元信息发送给相应所述从节点设备。

根据本申请的另一个方面,提供了一种在从节点设备端用于分布式文件处理的方法,包括:

基于主节点设备所分配的分布式作业任务,向所述主节点设备发送元信息读取请求,以获取所述分布式作业任务的相应所述分布式文件的元信息;

基于所述元信息打开并读取相应所述分布式文件,以处理所述分布式作业任务。

根据本申请的再一方面,还提供了一种用于分布式文件处理的主节点设备,包括:

获取元信息装置,用于基于分布式作业任务向文件系统中心节点设备发送请求,以获取关于所述分布式作业任务的一组分布式文件的元信息;

分配任务装置,用于将所述分布式作业任务分配给若干从节点设备进行处理;

发送元信息装置,用于基于所述从节点设备所发送的元信息读取请求,将所获取的分布式文件的元信息发送给相应所述从节点设备。

根据本申请的又一方面,还提供了一种用于分布式文件处理的从节点设备,包括:

发送读取请求装置,用于基于主节点设备所分配的分布式作业任务,向所述主节点设备发送元信息读取请求,以获取所述分布式作业任务的相应所述分布式文件的元信息;

处理装置,用于基于所述元信息打开并读取相应所述分布式文件,以处理所述分布式作业任务。

与现有技术相比,根据本申请的实施例所述方法及设备,主节点设备基于分布式作业任务向文件系统中心节点设备发送请求,进行处理分布式作业任务的一组分布式文件的操作并获取关于所述一组分布式文件的元信息;接着,将所述分布式作业任务分配给若干从节点设备进行处理;随后,从节点设备向所述主节点设备发送元信息读取请求,主节点设备将所获取的分布式文件的元信息发送给相应所述从节点设备,从节点设备基于所述元信息打开并读取相应所述分布式文件,以处理所述分布式作业任务。这样,主节点设备代替分布式作业任务处理分布式文件并获取文件元信息,分布式作业任务直接根据元信息打开并读取相应的分布式文件,规避了分布式作业任务和文件系统中心节点设备的交互,减少了向所述中心节点发送的请求次数,提高分布式系统的性能。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请一个方面的一种用于分布式文件处理的系统设备的结构示意图;

图2示出根据本申请一个方面的一种用于分布式文件处理的主节点设备的结构示意图;

图3示出根据本申请一个方面的又一种用于分布式文件处理的从节点设备的结构示意图;

图4示出根据本申请一个方面的一个优选实施例的一种用于打开分布式文件的各设备的配合示意图;

图5示出根据本申请一个方面的一种用于分布式文件处理的系统方法流程示意图;

图6示出根据本申请另一个方面的一种在主节点设备端用于分布式文件处理的方法流程示意图;

图7示出根据本申请一个方面的又一种在从节点设备端用于分布式文件处理的方法流程示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

图1示出根据本申请一个方面的一种用于分布式文件处理的系统设备的结构示意图;所述系统设备包括主节点设备和从节点设备;其中,主节点设备包括获取元信息装置11、分配任务装置12和发送元信息装置13;从节点设备包括发送读取请求装置21和处理装置22。

本申请通过主节点设备中的获取元信息装置11用于基于分布式作业任务向文件系统中心节点设备发送请求,进行处理分布式作业任务的一组分布式文件的操作并获取关于所述一组分布式文件的元信息;接着,分配任务装置12将所述分布式作业任务分配给若干从节点设备进行处理;随后,从节点设备中的发送读取请求装置21向所述主节点设备发送元信息读取请求,主节点设备中的发送元信息装置13将所获取的分布式文件的元信息发送给相应所述从节点设备,从节点设备中的处理装置22基于所述元信息打开并读取相应所述分布式文件,以处理所述分布式作业任务。这样,主节点设备代替分布式作业任务处理分布式文件并获取文件元信息,分布式作业任务直接根据元信息打开并读取相应的分布式文件,规避了分布式作业任务和文件系统中心节点设备的交互,减少了向所述中心节点发送的请求次数,提高分布式系统的性能。

在此,所述分布式作业是指由有限数量的子任务组成的分布式系统执行单元称为分布式作业,一个分布式作业的子任务之间有一定的依赖关系。所述主节点设备是指分布式作业运行过程,负责管理分布式作业状态,管理分布式作业使用资源的模块。每个分布式作业有独立的主节点设备运行在分布式系统中。所述文件系统中心节点是指分布式文件系统中负责进行元数据管理的模块,负责管理分布式系统中的所有文件,记录文件中的存放位置信息等。特别是分布式系统中文件的打开、创建和关闭都要经过文件系统中心节点设备。

所述主节点设备包括:获取元信息装置11、分配任务装置12和发送 元信息装置13,如图2所示。其中,获取元信息装置11基于分布式作业任务向文件系统中心节点设备发送请求,以获取关于所述分布式作业任务的一组分布式文件的元信息;分配任务装置12将所述分布式作业任务分配给若干从节点设备进行处理;发送元信息装置13基于所述从节点设备所发送的元信息读取请求,将所获取的分布式文件的元信息发送给相应所述从节点设备。

具体地,获取元信息装置11基于分布式作业任务向文件系统中心节点设备发送请求,以获取关于所述分布式作业任务的一组分布式文件的元信息。

在一实施例中,分布式作业任务需要打开一组分布式文件,主节点设备向文件系统中心节点设备发送请求,代替分布式作业任务打开该组分布式文件并获取该组分布式文件相应的元信息。

具体地,分配任务装置12将所述分布式作业任务分配给若干从节点设备进行处理。

接前例,主节点设备将分布式作业任务分配给若干从节点设备进行处理,一个从节点设备可有若干分布式作业任务,如有2000个分布式作业任务,主节点设备将这些分布式作业任务分配到50台从节点设备进行处理。

具体地,发送元信息装置13基于所述从节点设备所发送的元信息读取请求,将所获取的分布式文件的元信息发送给相应所述从节点设备。

继续接前例,从节点设备上的若干分布式作业任务需要打开一组分布式文件,从节点设备向主节点设备发送元信息读取请求,主节点将从文件系统中心节点获取的元信息发送给相应的需要元信息的从节点设备。

优选地,所述分布式作业任务包括映射-规约分布式作业的规约任务。

在此,映射-规约分布式作业是指分布式作业中的Map(映射)阶段和Reduce(规约)阶段,Map阶段和Reduce阶段都会根据本阶段负责的任务需要在分布式系统的各个从节点设备上执行多个实例,实例的个数从几千到十万,实例会对不同的数据执行相同的计算逻辑。其中,Map负责数据的过滤分发,Map的实例会读取分布式文件系统中的文件,进行一定 的运算之后,将数据分配给不同的Reduce实例使用;Reduce负责数据的计算归并,Reduce实例会接收所有Map实例的输出数据,并进行运算后写出一个分布式系统文件。例如,文件A内的数据是杂乱无章的,经过Map后,将文件的数据分成若干份,将该若干份数据分配给不同的Reduce使用,Reduce接收到数据后进行运算后写出一个文件a,该文件a内的数据是按照某种规则进行排序好的。所述分布式作业任务包括映射-规约分布式作业的规约任务是指在分布式作业过程中Reduce阶段所负责的任务,Map任务执行时打开其输入文件,同时会创建若干输出文件来写入中间数据,写出若干中间文件,所有Map写出的中间文件为一组分布式文件,Reduce进行打开该组分布式文件的任务为规约任务。

更优选地,所述获取元信息装置11用于:当获取所述规约任务时,基于所述规约任务向文件系统中心节点设备发送请求,以获取关于所述分布式作业任务的一组分布式文件的元信息。

在此,规约任务需要读取由映射任务写出的一组分布式文件时,主节点设备基于该读取请求向文件系统中心节点设备发送请求,代替规约任务打开所述一组分布式文件,主节点设备打开文件后并从文件系统中心节点设备获取该组文件的元信息。

所述从节点设备包括:发送读取请求装置21和处理装置22,如图3所示。其中,发送读取请求装置21基于主节点设备所分配的分布式作业任务,向所述主节点设备发送元信息读取请求,以获取所述分布式作业任务的相应所述分布式文件的元信息;处理装置22基于所述元信息打开并读取相应所述分布式文件,以处理所述分布式作业任务。

具体地,发送读取请求装置21基于主节点设备所分配的分布式作业任务,向所述主节点设备发送元信息读取请求,以获取所述分布式作业任务的相应所述分布式文件的元信息。

在此,主节点设备负责调度从节点设备,分布式系统中分配若干从节点设备进行分布式作业任务,一个从节点设备上进行若干分布式作业任务。从节点设备根据其上进行的分布式作业任务操作,如打开一组分布式文件操作,需向主节点设备发送有关该组分布式文件的元信息读取请求, 以获取相应的元信息进行后续分布式任务的处理。

具体地,处理装置22基于所述元信息打开并读取相应所述分布式文件,以处理所述分布式作业任务。

接前例,分布式作业任务所在的从节点设备向主节点设备发送该任务需要打开的一组分布式文件的元信息的读取请求,从而获取该组分布式文件的元信息,从节点设备根据所获取的元信息到相应的文件存储设备中读取该组文件,进而完成打开该组文件的操作。需要说明的是,文件存储设备如文件系统存储节点设备用于分布式文件系统中负责文件存储的模块,分布式文件系统中文件的内容会打散存储到多个存储节点上。

优选地,所述分布式作业任务包括由映射-规约分布式作业的规约任务。

在此,映射-规约分布式作业是指分布式作业中的Map(映射)阶段和Reduce(规约)阶段,其中,Map负责数据的过滤分发,Map任务处理时实例会读取分布式文件系统中的文件,进行一定的运算之后,将数据分配给不同的Reduce实例使用;Reduce负责数据的计算归并,Reduce实例会接收所有Map任务的输出数据,并进行运算后写出一个分布式系统文件。例如,文件A内的数据是杂乱无章的,经过Map后,将文件的数据分成若干份,将该若干份数据分配给不同的Reduce使用,Reduce接收到数据后进行运算后写出一个文件a,该文件a内的数据是按照某种一定的规则进行排序好的。所述分布式作业任务包括映射-规约分布式作业的规约任务是指分布式作业过程中Reduce阶段所负责的任务,Map的实例会打开其输入文件,同时会创建若干输出文件来写入中间数据,写出若干中间文件,所有Map实例写出的中间文件为一组分布式文件,Reduce进行打开该组分布式文件的任务为规约任务。

更优选地,所述发送读取请求装置21基于主节点设备所分配的规约任务,向所述主节点设备发送元信息读取请求,以获取所述规约任务的一组所述分布式文件的元信息。

在一优选实施例中,映射任务时可在多个不同的从节点设备进行,当映射任务写出若干输出文件,一组输出文件为一组分布式文件,主节点设 备可以将规约任务和映射任务分配在同一从节点设备,也可以分配到不同的从节点设备中,规约任务接收到映射输出文件,需要打开输出文件,规约任务所在的从节点设备向主节点设备发送规约任务需要打开的一组输出文件的元信息的读取请求,从而获取该组输出文件的元信息,一个文件读取一个元信息,即分布式文件读取其对应的元信息。

优选地,所述分布式作业任务包括由映射-规约分布式作业的映射任务。

如上述说明,映射-规约分布式作业是指分布式作业中的Map(映射)阶段和Reduce(规约)阶段,其中,Map负责数据的过滤分发,Map任务执行时会读取分布式文件系统中的文件,进行一定的运算之后,将数据分配给不同的Reduce任务使用。

更优选地,所述设备还包括:映射任务请求装置(未示出),用于基于所述映射任务,向文件系统中心节点设备发送请求,以获取关于所述映射任务的分布式文件的元信息;映射任务处理装置(未示出),用于基于所述元信息打开并读取相应所述分布式文件,以处理所述映射任务;规约任务处理装置(未示出),用于基于所述映射任务的处理结果,创建若干所述归约任务的一组所述分布式文件,并将所述规约任务的一组所述分布式文件发送至文件存储设备,并将所述规约任务的一组所述分布式文件的元信息发送至所述文件系统中心节点设备。

在此,分布式作业场景中,映射任务需要打开其输入文件,因分布式系统中的文件的打开、创建和关闭都要经过文件系统中心节点设备,所以,映射任务所在的从节点设备向文件系统中心节点发送请求,获取到相应的元信息;基于相关的元信息读取映射任务的输入文件完成打开操作,同时会创建若干输出文件来写入中间数据(Shuffle数据),即写出若干分布式文件。规约任务的输入数据为映射任务的输出数据,规约任务需要处理映射任务输出的一组分布式文件,映射任务将其创建的一组输出文件发送至文件存储设备,如文件系统存储节点设备用于存储分布式系统文件,并将该组输出文件的元信息发送至文件系统中心节点设备,进行保存元信息。主节点设备需要获取该组输出文件时向中心节点设备发送请求。

本申请的一个优选实施例中,分布式作业包含两个最基本的阶段:Map和Reduce,Map阶段和Reduce阶段都会根据需要在分布式系统的各个从节点设备上执行多个实例,实例的个数从几千到十万,实例会对不同的数据执行相同的计算逻辑。Map的实例会读取分布式文件系统中的文件,进行一定的运算之后,将数据分配给不同的Reduce实例使用,这一阶段称为Shuffle,将一组无规则的数据尽量转换成一组具有一定规则的数据。Reduce的实例会接收所有Map实例的Shuffle的数据,并进行运算后写出为一个分布式系统文件。现有分布式作业的实现中,对于规模大和数量大的作业都采用分布式文件系统中的文件作为Shuffle的介质。在Shuffle阶段,每个Reduce都要打开每个Map写出的文件。

在分布式作业场景中,每个Map实例会打开其输入文件,同时会创建若干个输出文件来写入Shuffle数据,Map实例共写出m个Shuffle文件;n个Reduce实例根据从Master读取的m个Shuffle文件的元信息,找到对应的文件系统存储节点读取Shuffle文件。

以图4示出的示意图对上述分布式作业场景进行详细描述:

分布式文件系统中,文件的打开操作是从文件系统中心节点获取文件的元信息,然后根据元信息去文件系统存储节点读取文件数据。分布式作业实例如Map实例和Reduce实例,实例可被分配在同一从节点设备上执行,也可以被分配在不同的从节点设备上执行。在分布式作业运行过程中,如果需要多个实例打开同一组文件的场景,例如,n个Reduce实例打开m个Shuffle文件的场景,首先,从节点设备上的Map实例打开其输入文件时,向文件系统中心节点设备发送请求,以获取关于Map输入文件的元信息;基于所述元信息打开并读取相应所述输入文件同时会创建若干输出文件来写入Shuffle数据,Map实例共写出m个Shuffle文件,并将这些Shuffle文件发送至文件存储设备及其文件的元信息发送至所述文件系统中心节点设备,在步骤1中,由该分布式作业的Master先和文件系统中心节点交互打开所有的Shuffle文件,获取文件的元信息。接着,如步骤2,将元信息发送给从节点设备上所有需要打开Shuffle文件的Reduce实例。如步骤3,实例在接收到元信息之后,直接根据元信息去文件系统存储节点读取 文件;从而避免了所有实例都去向文件系统中心节点去请求打开文件。因此,对于n个Reduce实例打开m个Shuffle文件的场景,只有m个打开操作,也就是仅需要向文件系统中心节点发送m次请求。以Shuffle阶段为例子:对于Map实例数为10000,输出Shuffle文件数为10000,Reduce实例数为10000,对于文件系统中心节点的请求次数由之前的1亿下降为1万。

需要说明的是,所述分布式作业的Master为主节点设备,负责管理分布式作业状态,管理分布式作业使用资源的模块;所述分布式作业实例在从节点设备上执行;所述文件系统存储节点为负责文件存储的模块,分布式文件系统中的内容分配存储在多个存储节点上。

与现有技术相比,根据本申请的实施例所述方法及设备,主节点设备基于分布式作业任务向文件系统中心节点设备发送请求,进行处理分布式作业任务的一组分布式文件的操作并获取关于所述一组分布式文件的元信息;接着,将所述分布式作业任务分配给若干从节点设备进行处理;随后,从节点设备向所述主节点设备发送元信息读取请求,主节点设备将所获取的分布式文件的元信息发送给相应所述从节点设备,从节点设备基于所述元信息打开并读取相应所述分布式文件,以处理所述分布式作业任务。这样,主节点设备代替分布式作业任务处理分布式文件并获取文件元信息,分布式作业任务直接根据元信息打开并读取相应的分布式文件,规避了分布式作业任务和文件系统中心节点设备的交互,减少了向所述中心节点发送的请求次数,提高分布式系统的性能。

图5示出根据本申请一个方面的一种用于分布式文件处理的系统方法的流程示意图;所述系统方法包括主节点设备端的步骤S11、步骤S12和步骤S13,从节点设备端的步骤S21和步骤S22。

本申请通过在步骤S11中,主节点设备基于分布式作业任务向文件系统中心节点设备发送请求,进行处理分布式作业任务的一组分布式文件的操作并获取关于所述一组分布式文件的元信息;接着,在步骤S12中,主节点设备将所述分布式作业任务分配给若干从节点设备进行处理;随后,在步骤S21中,从节点设备向所述主节点设备发送元信息读取请求,在步 骤S13中,主节点设备将所获取的分布式文件的元信息发送给相应所述从节点设备,在步骤S22中,从节点设备基于所述元信息打开并读取相应所述分布式文件,以处理所述分布式作业任务。这样,主节点设备代替分布式作业任务处理分布式文件并获取文件元信息,分布式作业任务直接根据元信息打开并读取相应的分布式文件,规避了分布式作业任务和文件系统中心节点设备的交互,减少了向所述中心节点发送的请求次数,提高分布式系统的性能。

在此,所述分布式作业是指由有限数量的子任务组成的分布式系统执行单元称为分布式作业,一个分布式作业的子任务之间有一定的依赖关系。所述主节点设备是指分布式作业运行过程,负责管理分布式作业状态,管理分布式作业使用资源的模块。每个分布式作业有独立的主节点设备运行在分布式系统中。所述文件系统中心节点是指分布式文件系统中负责进行元数据管理的模块,负责管理分布式系统中的所有文件,记录文件中的存放位置信息等。特别是分布式系统中文件的打开、创建和关闭都要经过文件系统中心节点设备。

在所述主节点设备端,该方法包括:步骤S11、步骤S12和步骤S13,如图6所示。其中,在步骤S11中,基于分布式作业任务向文件系统中心节点设备发送请求,以获取关于所述分布式作业任务的一组分布式文件的元信息;在步骤S12中,将所述分布式作业任务分配给若干从节点设备进行处理;在步骤S13中,基于所述从节点设备所发送的元信息读取请求,将所获取的分布式文件的元信息发送给相应所述从节点设备。

具体地,在步骤S11中,基于分布式作业任务向文件系统中心节点设备发送请求,以获取关于所述分布式作业任务的一组分布式文件的元信息。

在一实施例中,分布式作业任务需要打开一组分布式文件,主节点设备向文件系统中心节点设备发送请求,代替分布式作业任务打开该组分布式文件并获取该组分布式文件相应的元信息。

具体地,在步骤S12中,将所述分布式作业任务分配给若干从节点设备进行处理。

接前例,主节点设备将分布式作业任务分配给若干从节点设备进行处理,一个从节点设备可有若干分布式作业任务,如有2000个分布式作业任务,主节点设备将这些分布式作业任务分配到50台从节点设备进行处理。

具体地,在步骤S13中,基于所述从节点设备所发送的元信息读取请求,将所获取的分布式文件的元信息发送给相应所述从节点设备。

继续接前例,从节点设备上的若干分布式作业任务需要打开一组分布式文件,从节点设备向主节点设备发送元信息读取请求,主节点将从文件系统中心节点获取的元信息发送给相应的需要元信息的从节点设备。

优选地,所述分布式作业任务包括映射-规约分布式作业的规约任务。

在此,映射-规约分布式作业是指分布式作业中的Map(映射)阶段和Reduce(规约)阶段,Map阶段和Reduce阶段都会根据本阶段负责的任务需要在分布式系统的各个从节点设备上执行多个实例,实例的个数从几千到十万,实例会对不同的数据执行相同的计算逻辑。其中,Map负责数据的过滤分发,Map的实例会读取分布式文件系统中的文件,进行一定的运算之后,将数据分配给不同的Reduce实例使用;Reduce负责数据的计算归并,Reduce实例会接收所有Map实例的输出数据,并进行运算后写出一个分布式系统文件。例如,文件A内的数据是杂乱无章的,经过Map后,将文件的数据分成若干份,将该若干份数据分配给不同的Reduce使用,Reduce接收到数据后进行运算后写出一个文件a,该文件a内的数据是按照某种规则进行排序好的。所述分布式作业任务包括映射-规约分布式作业的规约任务是指在分布式作业过程中Reduce阶段所负责的任务,Map任务执行时打开其输入文件,同时会创建若干输出文件来写入中间数据,写出若干中间文件,所有Map写出的中间文件为一组分布式文件,Reduce进行打开该组分布式文件的任务为规约任务。

更优选地,所述步骤S11包括:当获取所述规约任务时,基于所述规约任务向文件系统中心节点设备发送请求,以获取关于所述分布式作业任务的一组分布式文件的元信息。

在此,规约任务需要读取由映射任务写出的一组分布式文件时,主节 点设备基于该读取请求向文件系统中心节点设备发送请求,代替规约任务打开所述一组分布式文件,主节点设备打开文件后并从文件系统中心节点设备获取该组文件的元信息。

在所述从节点设备端所述方法包括:步骤S21和步骤S22,如图7所示。其中,在步骤S21中,基于主节点设备所分配的分布式作业任务,向所述主节点设备发送元信息读取请求,以获取所述分布式作业任务的相应所述分布式文件的元信息;在步骤S22中,基于所述元信息打开并读取相应所述分布式文件,以处理所述分布式作业任务。

具体地,在步骤S21中,基于主节点设备所分配的分布式作业任务,向所述主节点设备发送元信息读取请求,以获取所述分布式作业任务的相应所述分布式文件的元信息。

在此,主节点设备负责调度从节点设备,分布式系统中分配若干从节点设备进行分布式作业任务,一个从节点设备上进行若干分布式作业任务。从节点设备根据其上进行的分布式作业任务操作,如打开一组分布式文件操作,需向主节点设备发送有关该组分布式文件的元信息读取请求,以获取相应的元信息进行后续分布式任务的处理。

具体地,在步骤S22中,基于所述元信息打开并读取相应所述分布式文件,以处理所述分布式作业任务。

接前例,分布式作业任务所在的从节点设备向主节点设备发送该任务需要打开的一组分布式文件的元信息的读取请求,从而获取该组分布式文件的元信息,从节点设备根据所获取的元信息到相应的文件存储设备中读取该组文件,进而完成打开该组文件的操作。需要说明的是,文件存储设备如文件系统存储节点设备用于分布式文件系统中负责文件存储的模块,分布式文件系统中文件的内容会打散存储到多个存储节点上。

优选地,所述分布式作业任务包括由映射-规约分布式作业的规约任务。

在此,映射-规约分布式作业是指分布式作业中的Map(映射)阶段和Reduce(规约)阶段,其中,Map负责数据的过滤分发,Map任务处理时实例会读取分布式文件系统中的文件,进行一定的运算之后,将数据 分配给不同的Reduce实例使用;Reduce负责数据的计算归并,Reduce实例会接收所有Map任务的输出数据,并进行运算后写出一个分布式系统文件。例如,文件A内的数据是杂乱无章的,经过Map后,将文件的数据分成若干份,将该若干份数据分配给不同的Reduce使用,Reduce接收到数据后进行运算后写出一个文件a,该文件a内的数据是按照某种一定的规则进行排序好的。所述分布式作业任务包括映射-规约分布式作业的规约任务是指分布式作业过程中Reduce阶段所负责的任务,Map的实例会打开其输入文件,同时会创建若干输出文件来写入中间数据,写出若干中间文件,所有Map实例写出的中间文件为一组分布式文件,Reduce进行打开该组分布式文件的任务为规约任务。

更优选地,在步骤S21中,基于主节点设备所分配的规约任务,向所述主节点设备发送元信息读取请求,以获取所述规约任务的一组所述分布式文件的元信息。

在一优选实施例中,映射任务时可在多个不同的从节点设备进行,当映射任务写出若干输出文件,一组输出文件为一组分布式文件,主节点设备可以将规约任务和映射任务分配在同一从节点设备,也可以分配到不同的从节点设备中,规约任务接收到映射输出文件,需要打开输出文件,规约任务所在的从节点设备向主节点设备发送规约任务需要打开的一组输出文件的元信息的读取请求,从而获取该组输出文件的元信息,一个文件读取一个元信息,即分布式文件读取其对应的元信息。

优选地,所述分布式作业任务包括由映射-规约分布式作业的映射任务。

如上述说明,映射-规约分布式作业是指分布式作业中的Map(映射)阶段和Reduce(规约)阶段,其中,Map负责数据的过滤分发,Map任务执行时会读取分布式文件系统中的文件,进行一定的运算之后,将数据分配给不同的Reduce任务使用。

更优选地,所述方法还包括:基于所述映射任务,向文件系统中心节点设备发送请求,以获取关于所述映射任务的分布式文件的元信息;基于所述元信息打开并读取相应所述分布式文件,以处理所述映射任务;基于 所述映射任务的处理结果,创建若干所述归约任务的一组所述分布式文件,并将所述规约任务的一组所述分布式文件发送至文件存储设备,并将所述规约任务的一组所述分布式文件的元信息发送至所述文件系统中心节点设备。

在此,分布式作业场景中,映射任务需要打开其输入文件,因分布式系统中的文件的打开、创建和关闭都要经过文件系统中心节点设备,所以,映射任务所在的从节点设备向文件系统中心节点发送请求,获取到相应的元信息;基于相关的元信息读取映射任务的输入文件完成打开操作,同时会创建若干输出文件来写入中间数据(Shuffle数据),即写出若干分布式文件。规约任务的输入数据为映射任务的输出数据,规约任务需要处理映射任务输出的一组分布式文件,映射任务将其创建的一组输出文件发送至文件存储设备,如文件系统存储节点设备用于存储分布式系统文件,并将该组输出文件的元信息发送至文件系统中心节点设备,进行保存元信息。主节点设备需要获取该组输出文件时向中心节点设备发送请求。

本申请的一个优选实施例中,分布式作业包含两个最基本的阶段:Map和Reduce,Map阶段和Reduce阶段都会根据需要在分布式系统的各个从节点设备上执行多个实例,实例的个数从几千到十万,实例会对不同的数据执行相同的计算逻辑。Map的实例会读取分布式文件系统中的文件,进行一定的运算之后,将数据分配给不同的Reduce实例使用,这一阶段称为Shuffle,将一组无规则的数据尽量转换成一组具有一定规则的数据。Reduce的实例会接收所有Map实例的Shuffle的数据,并进行运算后写出为一个分布式系统文件。现有分布式作业的实现中,对于规模大和数量大的作业都采用分布式文件系统中的文件作为Shuffle的介质。在Shuffle阶段,每个Reduce都要打开每个Map写出的文件。

在分布式作业场景中,每个Map实例会打开其输入文件,同时会创建若干个输出文件来写入Shuffle数据,Map实例共写出m个Shuffle文件;n个Reduce实例根据从Master读取的m个Shuffle文件的元信息,找到对应的文件系统存储节点读取Shuffle文件。以图4示出的示意图对上述分布式作业场景进行详细描述:

分布式文件系统中,文件的打开操作是从文件系统中心节点获取文件的元信息,然后根据元信息去文件系统存储节点读取文件数据。分布式作业实例如Map实例和Reduce实例,实例可被分配在同一从节点设备上执行,也可以被分配在不同的从节点设备上执行。在分布式作业运行过程中,如果需要多个实例打开同一组文件的场景,例如,n个Reduce实例打开m个Shuffle文件的场景,首先,从节点设备上的Map实例打开其输入文件时,向文件系统中心节点设备发送请求,以获取关于Map输入文件的元信息;基于所述元信息打开并读取相应所述输入文件同时会创建若干输出文件来写入Shuffle数据,Map实例共写出m个Shuffle文件,并将这些Shuffle文件发送至文件存储设备及其文件的元信息发送至所述文件系统中心节点设备,在步骤1中,由该分布式作业的Master先和文件系统中心节点交互打开所有的Shuffle文件,获取文件的元信息。接着,如步骤2,将元信息发送给从节点设备上所有需要打开Shuffle文件的Reduce实例。如步骤3,实例在接收到元信息之后,直接根据元信息去文件系统存储节点读取文件;从而避免了所有实例都去向文件系统中心节点去请求打开文件。因此,对于n个Reduce实例打开m个Shuffle文件的场景,只有m个打开操作,也就是仅需要向文件系统中心节点发送m次请求。以Shuffle阶段为例子:对于Map实例数为10000,输出Shuffle文件数为10000,Reduce实例数为10000,对于文件系统中心节点的请求次数由之前的1亿下降为1万。

需要说明的是,所述分布式作业的Master为主节点设备,负责管理分布式作业状态,管理分布式作业使用资源的模块;所述分布式作业实例在从节点设备上执行;所述文件系统存储节点为负责文件存储的模块,分布式文件系统中的内容分配存储在多个存储节点上。

与现有技术相比,根据本申请的实施例所述方法及设备,主节点设备基于分布式作业任务向文件系统中心节点设备发送请求,进行处理分布式作业任务的一组分布式文件的操作并获取关于所述一组分布式文件的元信息;接着,将所述分布式作业任务分配给若干从节点设备进行处理;随后,从节点设备向所述主节点设备发送元信息读取请求,主节点设备将所 获取的分布式文件的元信息发送给相应所述从节点设备,从节点设备基于所述元信息打开并读取相应所述分布式文件,以处理所述分布式作业任务。这样,主节点设备代替分布式作业任务处理分布式文件并获取文件元信息,分布式作业任务直接根据元信息打开并读取相应的分布式文件,规避了分布式作业任务和文件系统中心节点设备的交互,减少了向所述中心节点发送的请求次数,提高分布式系统的性能。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装 置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1