CN110362387B - 分布式任务的处理方法、装置、***和存储介质 - Google Patents

分布式任务的处理方法、装置、***和存储介质 Download PDF

Info

Publication number
CN110362387B
CN110362387B CN201810319747.1A CN201810319747A CN110362387B CN 110362387 B CN110362387 B CN 110362387B CN 201810319747 A CN201810319747 A CN 201810319747A CN 110362387 B CN110362387 B CN 110362387B
Authority
CN
China
Prior art keywords
task
parallelism
mapping
distributed
input data
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.)
Active
Application number
CN201810319747.1A
Other languages
English (en)
Other versions
CN110362387A (zh
Inventor
雷春蔚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810319747.1A priority Critical patent/CN110362387B/zh
Publication of CN110362387A publication Critical patent/CN110362387A/zh
Application granted granted Critical
Publication of CN110362387B publication Critical patent/CN110362387B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分布式任务的处理方法、装置、***和存储介质。该方法包括:基于分布式任务的历史数据,确定分布式任务的映射任务的历史并行度,分布式任务包括具有依赖关系的映射任务和化简任务;基于输入数据量,确定映射任务的实际并行度;根据实际并行度和历史并行度,计算输入数据量的变化倍数;基于输入数据量的变化倍数以及化简任务的基准并行度,确定化简任务的实际并行度;根据映射任务的实际并行度和化简任务的实际并行度,处理分布式任务。根据本发明实施例提供的分布式任务的处理方法,可以根据处理数据量自动调整任务并行度。

Description

分布式任务的处理方法、装置、***和存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及分布式任务的处理方法、装置、***和存储介质。
背景技术
近年来,网络技术飞速发展,各种大型网站的高并发访问以及海量数据处理的场景越来越多,分布式***得到越来越广泛的应用。
利用分布式***(Distributed System)对各种计算任务进行拆解,然后将拆解后的任务分片分发到多台机器进行分布式并行处理,这样就能大大减少任务执行的时间。在分布式***中,每台机器可以同时处理任务分片的数目可以称为分布式任务的并行度。
现有技术中,各个任务的并行度通常是固定的,而任务的输入数据量并不是固定不变的。当任务的输入数据量发生大的波动,固定的并行度不能适应任务的输入数据量有巨大波动的情况,导致任务并行度过低,处理速度下降;或,导致任务并行度过高,需要较大的***资源以满足该并行度,浪费***资源。
发明内容
本发明实施例提供一种分布式任务的处理方法、装置、***和存储介质,可以根据处理数据量自动调整任务并行度。
根据本发明实施例的一方面,提供一种分布式任务的处理方法,包括:
基于分布式任务的历史数据,确定分布式任务的映射任务的历史并行度,分布式任务包括:具有依赖关系的映射任务和化简任务;
基于输入数据量,确定映射任务的实际并行度;
根据实际并行度和历史并行度,计算输入数据量的变化倍数;
基于输入数据量的变化倍数以及化简任务的基准并行度,确定化简任务的实际并行度;
根据映射任务的实际并行度和化简任务的实际并行度,处理分布式任务。
根据本发明实施例的另一方面,提供一种分布式任务的处理装置,包括:
分布式任务历史并行度确定模块,用于基于分布式任务的历史数据,确定分布式任务的映射任务的历史并行度,分布式任务包括具有依赖关系的映射任务和化简任务;
映射任务实际并行度确定模块,用于基于输入数据量,确定映射任务的实际并行度;
输入数据量变化倍数计算模块,用于根据映射任务的实际并行度和历史并行度,计算输入数据量的变化倍数;
化简任务实际并行度计算模块,用于基于输入数据量的变化倍数和化简任务的基准并行度,确定化简任务的实际并行度;
分布式任务处理模块,用于根据映射任务的实际并行度和化简任务的实际并行度,处理分布式任务。
根据本发明实施例的再一方面,提供一种分布式任务的处理***,包括:存储器和处理器;该存储器用于存储程序;该处理器用于读取存储器中存储的可执行程序代码以执行上述分布式任务的处理方法。
根据本发明实施例的又一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行上述各方面的分布式任务的处理方法。
根据本发明实施例中的分布式任务的处理方法、装置、***和存储介质,可以根据处理数据量的变化,自适应调整任务并行度,处理分布式任务。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是示出根据本发明实施例的分布式***的结构示意图;
图2是示出根据本发明示例性实施例的分布式任务的处理方法中对任务并行度的进行调整的流程示意图;
图3是示出根据本发明实施例的分布式任务的处理方法的流程图;
图4是示出根据本发明实施例分布式任务的处理装置的结构示意图;
图5是示出了可以实现根据本发明实施例的分布式任务的处理方法和装置的计算设备的示例性硬件架构的结构图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了更好的理解本发明,下面将结合附图,详细描述根据本发明实施例的分布式任务的处理方法、装置、***和存储介质,应注意,这些实施例并不是用来限制本发明公开的范围。
在本发明实施例中,分布式***(Distributed System)是一个可以对拥有海量数据的数据文件进行数据并行处理的计算框架,通过分布式***进行数据并行处理可以提高数据处理效率,节省海量数据和复杂问题的处理时间。
下面结合图1,详细介绍根据本发明实施例的分布式***的数据并行处理过程。图1示例性地示出了根据本发明实施例的分布式***的结构示意图。
如图1所示,在本发明实施例中,分布式***100中可以包括:控制组件110、数据组件120、任务组件(图中未示出)以及输出组件150。
在一个实施例中,控制组件110与任务组件进行耦合,并可以用于任务调度。
在一个实施例中,分布式任务是分布式***中的并行计算任务,在分布式***中,分布式任务可以将数据处理任务分为多个子任务,将该多个子任务分配到不同的处理节点进行并行计算,以对数据处理任务中的数据文件进行并行处理。
在一个实施例中,映射任务(Map Task)和化简任务(Reduce Task)是并行计算框架MapReduce对数据处理任务中的数据文件进行并行处理的两个阶段。其中,映射任务用于将待处理数据文件对应的总任务分解成多个任务;化简任务用于汇总多个任务的处理结果。
在一个实施例中,任务组件可以包括映射任务组件130和化简任务组件140。映射任务组件130可以用于处理映射任务,化简任务组件140可以用于处理化简任务。
在该实施例中,控制组件110、映射任务组件130和化简任务组件140可以布置在分布式***中的机器设备上,这些机器设备之间可以通过网络进行连接。因此,布置有控制组件和任务组件的机器设备可以理解为是网络节点。
在一个实施例中,通过数据并行处理,分布式***可以将一个数据处理任务分解为两个或更多个并行计算任务,然后将上述两个或更多个并行计算任务分配给该分布式***中的多台机器设备去执行,共同完成对该海量数据的处理任务。
作为一个示例,布置有控制组件110的机器设备可以称为主节点或管理节点,布置有任务组件的机器设备可以称为分节点或任务执行节点。
在本发明实施例中,分布式***100可以使用并行计算框架MapReduce对数据处理任务中的数据文件进行并行处理。
作为一个示例,分布式***100的并行处理过程可以包括:
S01,文件分片阶段:MapReduce计算框架可以将待处理的数据文件进行分片处理,得到多个输入分片(Input split),输入分片存储的并非数据本身,而是一个分片长度和一个记录数据的位置的数组。
S02,映射任务执行阶段:控制组件110可以将得到的多个输入分片分发给映射任务组件130,每个映射任务可以对一个或一个以上输入分片进行处理。每个输入分片被处理后得到一个中间数据。
S03,中间数据处理阶段:对于映射任务组件130处理输入分片得到的中间数据,分布式***100可以对中间数据进行归类,以及对中间数据进行缓存、排序和分区的操作。
S04,化简任务执行阶段,化简任务组件140对这些分区和排序好的中间数据,按照归纳的类别进行整合,并通过输出组件150输出最终处理结果。
在一些实施例中,分布式***100可以同时对多个文件并行处理。在文件分片阶段,数据组件120可以读取两个文件,例如File1和File2,并对读取的两个文件逐个进行分片处理;在映射任务执行阶段,为了区分不同的文件来源,可以对文件的数据进行打标签的操作,即对相同文件来源的数据打相同的标签;而在化简任务执行阶段,对中间数据进行整合时,需要将相同文件来源的数据进行关联操作。
因此,在本发明实施例中,分布式***中的并行计算任务还可以包括关联任务(Join Task)。关联任务用于在映射任务执行阶段执行表之间的关联操作,或者用于在化简任务执行阶段对相同文件来源的数据执行关联操作。
相应的,分布式***100的任务组件还可以包括关联任务组件(图中未示出),关联任务组件可以用户处理关联任务。
在一些实施例中,利用分布式***的MapReduce计算框架处理较为复杂的数据处理任务时,可以将一个复杂的数据处理任务,分解为多个数据处理子任务,每个数据处理子任务中的并行计算任务之间可以存在依赖关系。
作为一个示例,第一个数据处理任务中的映射任务A的处理结果是化简任务B的输入,则可以理解为化简任务B依赖与映射任务A,即化简任务B与映射任务A具有依赖关系。
作为另一个示例,第一个数据处理任务中的化简任务A的处理结果和第二个数据处理任务中的化简任务B的处理结果,共同作为第三个并行计算任务例如关联任务C的处理结果,则可以理解为关联任务C依赖于化简任务A和化简任务B,即关联任务C与化简任务A和化简任务B具有依赖关系。
在本发明实施例中,用户可以自定义文件分片(Split Size)的大小,文件分片的大小可以用于表示一个映射任务可以处理的文件大小。
在一个实施例中,在文件分片阶段,可以对待处理文件执行分片处理,得到多个输入分片,从而在映射任务执行阶段,每个输入分片可以称为是一个任务分片,该任务分片可以对应一个映射任务实例。
在一个实施例中,将对待处理文件执行映射任务时,映射任务组件130可以执行的映射任务实例的最大数量,就是映射任务的并行度。
作为一个示例,在一个数据处理任务中,将要输入的待处理文件所包含的数据量大小作为输入数据量,利用输入数据量与用户自定义的每个分片的大小相除,得到输入分片的个数,可以将该输入分片的个数作为在数据处理任务中映射任务的并行度。
作为一个示例,如果输入数据量与用户自定义的每个分片的大小相除的结果小于1,则将输入分片的个数设置为1。
在一个实施例中,将对待处理文件执行化简任务时,化简任务组件140可以执行的化简任务实例的最大数量,就是化简任务的并行度。
在一个实施例中,将对待处理文件执行关联任务时,关联任务组件140可以执行的关联任务实例的最大数量,就是关联任务的并行度。
在本发明实施例中,利用并行计算框架并行处理数据文件任务时,如果数据量有巨大波动,例如输入数据量大幅增加或输入数据量大幅减小时,可以对并行计算任务的并行度进行调整。
下面结合图2,详细介绍根据本发明实施例的分布式任务的处理方法中,对任务并行度的调整过程。
图2示出了根据本发明示例性实施例的分布式任务的处理方法中对任务并行度的进行调整的流程示意图。
如图2所示,分布式***(图中未示出)可以通过数据采集器采集执行分布式数据处理任务时的任务执行情况,例如执行时刻、输入数据量、输出数据量等,并对采集到的数据进行清洗形成包含分布式数据处理任务执行情况的历史数据仓库。
在一个实施例中,该历史数据仓库可以是一个分布式数据文件***,该数据采集器可以是日志收集器。
作为一个示例,该分布式***中的分布式数据处理任务可以包括利用MapReduce计算框架的第一数据处理任务Job1(图中未示出)和第二数据处理任务Job2(图中未示出)。
作为一个示例,分布式***中的并行计算任务包括:Job1中的映射任务1,依赖于映射任务1的化简任务3_1;Job2中的映射任务2,依赖于映射任务2的化简任务4_2;以及依赖于化简任务3_1和化简任务4_2的关联任务5_3_4。
在本发明实施例中,数据处理任务中映射任务的并行度可以基于文件分片大小和输入数据量进行计算,而数据处理任务中化简任务的并行度可以由用户直接指定。
在一个实施例中,用户可以根据待处理分布式任务的任务类型,设置待处理分布式任务中化简任务的基准并行度。作为一个示例,可以设置该化简任务的基准并行度为1。
在一个实施例中,可以基于数据处理任务的历史数据计算映射任务的并行度。需要说明的是,计算映射任务的并行度的方法有多种,本发明实施例不做具体限定。
在本发明实施例中,分布式数据处理任务的并行度会影响分布式***的执行并发度和执行效率。当分布式数据处理任务的输入数据量发生较大变化,基于任务执行的历史信息计算的任务并行度需要根据实际的输入数据量进行调整。
作为一个示例,例如,一个分布式数据处理任务包含两个子任务:分布式任务Job1和分布式任务Job2。
对于Job1的映射任务,在指定时间段内例如最近3天,输入数据量在128M左右,每天的并行度为1,因此可以根据这些任务执行信息获取预设的分片大小为256M,历史并行度为1;对于分布式任务Job1的化简任务,输入数据量在20MB左右,可以设置Job1中化简任务并行度为1。
在该示例中,如果Job1的输入数据量由128M变化为1280MB,则当当前映射任务的输入数据量也会相应增长,如果当前化简任务的并行度仍为1,化简任务的执行时间将会大大加长,显然,这个并行度并不合理。
在本发明实施例中,可以根据输入数据量的变化程度,动态调整分布式数据处理任务的并行度,以应对分布式数据处理任务的输入数据量有巨大波动的情况。
作为一个示例,当Job1的输入数据量由128M变化为1280MB时,由于Job1的映射任务的分片大小为256M,通过计算公式1280/256=5,可以得到该映射任务的并行度为5,同时根据历史执行信息可以确定该映射任务的历史并行度为1,所以输入数据量的变化倍数为5。
在该示例中,如果该Job1的化简任务与该Job1的映射任务具有依赖关系,Job1化简任务的历史并行度为1时,则可以根据该映射任务的数据量的变化倍数与该化简任务的历史并行度的乘积,作为该化简任务在数据量变化后的实际并行度为5。
作为另一个示例,对于分布式任务Job2的映射任务,在指定时间段内例如最近5天,输入数据量在128M左右,并行度为1,运行时间为60s左右,则可以计算得到Job2的映射任务的历史并行度为1,分片大小为128MB。当变化后的输入数据量为384M时,通过计算公式384/128=3,可以得到该映射任务的输入数据量的变化倍数为3;根据该映射任务的输入数据量的变化倍数与该映射任务的历史并行度的乘积,作为该映射任务在数据量变化后的实际并行度,即输入数据量变化后,Job2的映射任务的实际并行度。
在该示例中,如果该Job2的化简任务与该Job2的映射任务具有依赖关系,如果Job2化简任务的基准并行度为9,则可以根据该映射任务的输入数据量的变化倍数与该化简任务的基准并行度的乘积,作为该化简任务在数据量变化后的实际并行度。
作为另一个示例,对于一个与Job1的化简任务和Job2的化简任务具有依赖关系的关联任务,获取预先设置的该关联任务的基准并行度例如为5,并获取该Job1的化简任务的输入数据量的变化倍数与该Job2的数据量变化倍数中的最大值,作为关联任务的输入数据量得到变化倍数,并将关联任务的输入数据量的变化倍数与该关联任务的基准并行度的乘积,作为该关联任务的实际并行度。
结合上述实施例,本发明实施例可以根据当前数据量自适应调整任务并行度,应对任务处理数据量有巨大波动的情况。
根据上述实施例中数据处理并行度的调整方法,本发明实施例提供一种分布式任务的处理方法。下面结合图3,详细描述根据本发明实施例的分布式任务的处理方法。
图3示出了根据本发明实施例的分布式任务的处理方法的流程图。如图3所示,本发明实施例的分布式任务的处理方法300包括:
步骤S310,基于分布式任务的历史数据,确定分布式任务的映射任务的历史并行度,分布式任务包括:具有依赖关系的映射任务和化简任务。
在步骤S310之前,可以首先对分布式任务的执行信息进行数据清洗,从而得到分布式任务的历史数据。
在一个实施例中,步骤S310具体可以包括:
步骤S311,统计历史数据中指定指定时间段内映射任务的并行度、执行次数、输入数据量和运行时间。
步骤S312,根据指定时间段内映射任务的并行度和执行次数,计算映射任务在指定时间段内的平均并行度,将平均并行度作为映射任务的历史并行度。
在该实施例中,将指定时间段内映射任务的并行度的平均值作为该映射任务的历史并行度,可以保证计算得到的历史并行度数值的准确性和稳定性。
步骤S320,基于输入数据量,确定映射任务的实际并行度。
在一个实施例中,步骤S320具体可以包括:
将输入数据量的大小与预设的任务分片大小相除,得到映射任务的实际并行度。
在该步骤中,可以根据历史数据中映射任务的输入数据量和运行时间,预估映射任务的分片大小,并将分片大小的预估值设置为映射任务的文件分片大小。
步骤S330,根据映射任务的实际并行度和历史并行度,计算输入数据量的变化倍数。
在一个实施例中,步骤S330具体可以包括:
将映射任务的实际并行度与映射任务的历史并行度相除,得到输入数据量的变化倍数。
在该步骤中,将输入数据量的变化倍数与该化简任务的基准并行度相乘,得到该化简任务的实际并行度。
步骤S340,基于输入数据量的变化倍数和化简任务的基准并行度,确定化简任务的实际并行度。
在一个实施例中,化简任务的基准并行度是用户可以自定义设置的化简任务的并行度基准值,根据任务类型的不同,可以为不同的化简任务设置不同的并行度基准值。
在一个实施例中,可以参考历史执行信息中化简任务的并行度,设置与映射任务具有依赖关系的化简任务的基准并行度。
在本发明实施例中,分布式任务还可以包括关联任务。关联任务是可以与映射任务和/或化简任务具有关联关系或依赖关系的任务。
在一个实施例中,可以设置关联任务的基准并行度,关联任务的基准并行度是用户可以自定义设置的关联任务的并行度基准值,根据任务类型的不同,可以为不同的关联任务设置不同的并行度基准值。
在一个实施例中,可以参考历史执行信息中关联任务的并行度,设置关联任务的基准并行度。
在本发明实施例中,可以根据任务类型的不同,为映射任务的基准并行度和化简任务的基准并行度分别设置不同的基准值;或为映射任务的基准并行度和化简任务的基准并行度统一设置为一个基准值,例如将映射任务的基准并行度和化简任务的基准并行度统一设置为1。
在一个实施例中,该关联任务可以与一个以上的映射任务具有依赖关系,在该实施例中,本发明实施例中的分布式任务的处理方法还可以包括:
步骤S340-01,将与关联任务具有依赖关系的映射任务作为关联映射任务,获取关联映射任务的输入数据量的变化倍数最大值。
步骤S340-02,根据关联任务的基准并行度和关联映射任务的输入数据量的变化倍数最大值,计算关联任务的实际并行度。
在一个实施例中,该关联任务可以与一个以上的化简任务具有依赖关系,在该实施例中,本发明实施例中的分布式任务的处理方法还可以包括:
步骤S350-01,将与关联任务具有依赖关系的化简任务作为关联化简任务,获取关联化简任务的输入数据量的变化倍数最大值。
在该步骤中,关联化简任务的输入数据量的变化倍数,即与关联任务具有依赖关系的化简任务的输入数据量的变化倍数,可以等于该化简任务具有依赖关系的映射任务的输入数据量的变化倍数。
步骤S350-02,根据关联任务的基准并行度和关联化简任务的输入数据量的变化倍数最大值,计算关联任务的实际并行度。
在一个实施例中,该关联任务是可以与一个以上的映射任务和一个以上的化简任务具有依赖关系的关联任务。在该实施例中,本发明实施例中的分布式任务的处理方法还可以包括:
步骤S360-01,将与关联任务具有依赖关系的映射任务和化简任务作为关联映射化简任务,获取关联映射化简任务的输入数据量的变化倍数最大值。
在该步骤中,关联映射化简任务的输入数据量的变化倍数,即与关联任务具有依赖关系的映射任务和化简任务的输入数据量的变化倍数,可以等于该关联任务具有依赖关系的映射任务的输入数据量的变化倍数。
步骤S360-02,根据关联任务的基准并行度和关联映射化简任务的输入数据量的变化倍数最大值,计算关联任务的实际并行度。
步骤S350,根据映射任务的实际并行度和化简任务的实际并行度,处理分布式任务。
根据本发明实施例的分布式任务的处理方法,在面对数据量有巨大波动的情况下,可以将分布式***的任务并行度调整到一个合适的值,以提高分布式***的处理效率。
可以理解的是,在本发明实施例中,如果当前数据量发生骤减的情况,同样根据利用本发明实施例的分布式任务的处理方法,调整该分布式***中各分布式任务的并行度,从而在不影响处理效率的前提下,节约***资源。
图4示出了根据本发明实施例分布式任务的处理装置的结构示意图。
如图4所示,本发明实施例的分布式任务的处理装置400可以包括:
分布式任务历史并行度确定模块410,基于分布式任务的历史数据,确定分布式任务的映射任务的历史并行度,分布式任务包括:具有依赖关系的映射任务和化简任务。
映射任务实际并行度确定模块420,用于基于输入数据量,确定映射任务的实际并行度。
输入数据量变化倍数计算模块430,用于根据映射任务的实际并行度和历史并行度,计算输入数据量的变化倍数。
化简任务实际并行度计算模块440,用于基于输入数据量的变化倍数和化简任务的基准并行度,确定化简任务的实际并行度。
分布式任务处理模块450,用于根据映射任务的实际并行度和化简任务的实际并行度,处理分布式任务。
根据本发明实施例的分布式任务的处理装置,可以根据处理数据量自动调整任务并行度。
在一个实施例中,分布式任务历史并行度确定模块410具体可以包括:
历史数据统计单元,用于统计历史数据中指定时间段内映射任务的并行度、执行次数、输入数据量和运行时间;
历史并行度计算单元,用于根据指定时间段内映射任务的并行度和执行次数,计算映射任务在指定时间段内的平均并行度,将平均并行度作为映射任务的历史并行度。
在一个实施例中,映射任务实际并行度确定模块420,具体可以用于将输入数据量的大小与预设的任务分片大小相除,得到映射任务的实际并行度。
在一个实施例中,输入数据量变化倍数计算模块430,具体可以用于将映射任务的实际并行度与映射任务的历史并行度相除,得到输入数据量的变化倍数。
在该实施例中,根据映射任务的输入数据量的变化倍数和映射任务的历史并行度的乘积,作为根据输入数据量发生变化,对与该映射任务具有依赖关系的化简任务进行调整后,该化简任务的实际并行度。
在一个实施例中,分布式任务还包括关联任务,每个关联任务与一个以上的映射任务具有依赖关系;分布式任务的处理装置400还可以包括:
第一数据量变化倍数确定模块,用于将与关联任务具有依赖关系的映射任务作为关联映射任务,获取关联映射任务的输入数据量的变化倍数最大值;
第一关联任务并行度计算模块,用于根据关联任务的基准并行度和关联映射任务的输入数据量的变化倍数最大值,计算关联任务的实际并行度。
在一个实施例中,分布式任务还包括关联任务,每个关联任务与一个以上的化简任务具有依赖关系;分布式任务的处理装置400还可以包括:
第二数据量变化倍数确定模块,用于将与关联任务具有依赖关系的化简任务作为关联化简任务,获取关联化简任务的输入数据量的变化倍数最大值;
第二关联任务并行度计算模块,用于根据关联任务的基准并行度和关联化简任务的输入数据量的变化倍数最大值,计算关联任务的实际并行度。
在一个实施例中,分布式任务还包括关联任务,关联任务与一个以上的映射任务和一个以上的化简任务具有依赖关系;该分布式任务的处理装置400还可以包括:
第三数据量变化倍数确定模块,用于获取与关联任务具有依赖关系的映射任务和化简任务作为关联映射化简任务,比较关联映射化简任务的输入数据量的变化倍数,得到关联映射化简任务的输入数据量的变化倍数最大值;
第三关联任务并行度计算模块,用于根据关联任务的基准并行度和关联映射化简任务的输入数据量的变化倍数最大值,计算关联任务的实际并行度。
根据本发明实施例的分布式任务的处理装置的其他细节与以上结合图1描述的根据本发明实施例的分布式任务的处理方法类似,在此不再赘述。
图5是示出能够实现根据本发明实施例的分布式任务的处理方法和装置的计算设备的示例性硬件架构的结构图。
如图5所示,计算设备500包括输入设备501、输入接口502、中央处理器503、存储器504、输出接口505、以及输出设备506。其中,输入接口502、中央处理器503、存储器504、以及输出接口505通过总线510相互连接,输入设备501和输出设备506分别通过输入接口502和输出接口505与总线510连接,进而与计算设备500的其他组件连接。
具体地,输入设备501接收来自外部(例如,分布式数据库文件***)的输入信息,并通过输入接口502将输入信息传送到中央处理器503;中央处理器503基于存储器504中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器504中,然后通过输出接口505将输出信息传送到输出设备506;输出设备506将输出信息输出到计算设备500的外部供用户使用。
也就是说,图5所示的计算设备也可以实现为一种分布式任务的处理***,包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合图1至图4描述的分布式任务的处理方法和装置。这里,处理器可以与分布式数据库文件***通信,从而基于来自分布式数据库文件***输入的待处理数据文件的相关信息执行计算机可执行指令,从而实现结合图1至图4描述的分布式任务的处理方法和装置。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品或计算机可读存储介质的形式实现。所述计算机程序产品或计算机可读存储介质包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的***、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

Claims (14)

1.一种分布式任务的处理方法,包括:
基于分布式任务的历史数据,确定所述分布式任务的映射任务的历史并行度,所述分布式任务包括:具有依赖关系的映射任务和化简任务;
基于输入数据量,确定所述映射任务的实际并行度;
根据所述实际并行度和所述历史并行度,计算所述输入数据量的变化倍数;
基于所述输入数据量的变化倍数以及所述化简任务的基准并行度,确定所述化简任务的实际并行度;
根据所述映射任务的实际并行度和所述化简任务的实际并行度,处理所述分布式任务。
2.根据权利要求1所述的分布式任务的处理方法,其中,所述基于分布式任务的历史数据,确定所述分布式任务的映射任务的历史并行度,包括:
统计所述历史数据中指定时间段内所述映射任务的并行度、执行次数、输入数据量和运行时间;
根据所述映射任务的并行度和所述执行次数,计算所述映射任务在所述指定时间段内的平均并行度,将所述平均并行度作为所述映射任务的历史并行度。
3.根据权利要求1所述的分布式任务的处理方法,其中,
所述基于输入数据量,确定所述映射任务的实际并行度,包括:将所述输入数据量的大小与预设的任务分片大小相除,得到所述映射任务的实际并行度;
所述根据所述映射任务的实际并行度和所述历史并行度,计算所述输入数据量的变化倍数,包括:将所述映射任务的实际并行度与所述映射任务的历史并行度相除,得到所述输入数据量的变化倍数。
4.根据权利要求1所述的分布式任务的处理方法,其中,所述分布式任务还包括关联任务,所述关联任务与所述映射任务具有依赖关系;
所述分布式任务的处理方法还包括:
将与所述关联任务具有依赖关系的所述映射任务作为关联映射任务,获取所述关联映射任务的输入数据量的变化倍数最大值;
根据所述关联任务的基准并行度和所述关联映射任务的输入数据量的变化倍数最大值,计算所述关联任务的实际并行度。
5.根据权利要求1所述的分布式任务的处理方法,其中,所述分布式任务还包括关联任务,所述关联任务与一个以上的化简任务具有依赖关系;
所述分布式任务的处理方法还包括:
将与所述关联任务具有依赖关系的化简任务作为关联化简任务,获取所述关联化简任务的输入数据量的变化倍数最大值;
根据所述关联任务的基准并行度和所述关联化简任务的输入数据量的变化倍数最大值,计算所述关联任务的实际并行度。
6.根据权利要求1所述的分布式任务的处理方法,其中,所述分布式任务还包括关联任务,所述关联任务与映射任务和化简任务具有依赖关系;
所述分布式任务的处理方法还包括:
将与所述关联任务具有依赖关系的所述映射任务和所述化简任务作为关联映射化简任务,获取所述关联映射化简任务的输入数据量的变化倍数最大值;
根据所述关联任务的基准并行度和所述关联映射化简任务的输入数据量的变化倍数最大值,计算所述关联任务的实际并行度。
7.一种分布式任务的处理装置,包括:
分布式任务历史并行度确定模块,用于基于分布式任务的历史数据,确定所述分布式任务的映射任务的历史并行度,所述分布式任务包括具有依赖关系的映射任务和化简任务;
映射任务实际并行度确定模块,用于基于输入数据量,确定所述映射任务的实际并行度;
输入数据量变化倍数计算模块,用于根据所述映射任务的实际并行度和所述历史并行度,计算所述输入数据量的变化倍数;
化简任务实际并行度计算模块,用于基于所述输入数据量的变化倍数和所述化简任务的基准并行度,确定所述化简任务的实际并行度;
分布式任务处理模块,用于根据所述映射任务的实际并行度和所述化简任务的实际并行度,处理所述分布式任务。
8.根据权利要求7所述的分布式任务的处理装置,其中,分布式任务历史并行度确定模块包括:
历史数据统计单元,用于统计所述历史数据中指定时间段内所述映射任务的并行度、执行次数、输入数据量和运行时间;
历史并行度计算单元,用于根据所述指定时间段内所述映射任务的并行度和所述执行次数,计算所述映射任务在所述指定时间段内的平均并行度,将所述平均并行度作为所述映射任务的历史并行度。
9.根据权利要求7所述的分布式任务的处理装置,其中,
所述映射任务实际并行度确定模块具体用于:将所述输入数据量的大小与预设的任务分片大小相除,得到所述映射任务的实际并行度;
所述输入数据量变化倍数计算模块具体用于:将所述映射任务的实际并行度与所述映射任务的历史并行度相除,得到所述输入数据量的变化倍数。
10.根据权利要求7所述的分布式任务的处理装置,其中,所述分布式任务还包括关联任务,每个关联任务与一个以上的映射任务具有依赖关系;
所述分布式任务的处理装置还包括:
第一数据量变化倍数确定模块,用于将与所述关联任务具有依赖关系的所述映射任务作为关联映射任务,获取所述关联映射任务的输入数据量的变化倍数最大值;
第一关联任务并行度计算模块,用于根据所述关联任务的基准并行度和所述关联映射任务的输入数据量的变化倍数最大值,计算所述关联任务的实际并行度。
11.根据权利要求7所述的分布式任务的处理装置,其中,所述分布式任务还包括关联任务,每个关联任务与一个以上的化简任务具有依赖关系;
所述分布式任务的处理装置还包括:
第二数据量变化倍数确定模块,用于将与所述关联任务具有依赖关系的化简任务作为关联化简任务,获取所述关联化简任务的输入数据量的变化倍数最大值;
第二关联任务并行度计算模块,用于根据所述关联任务的基准并行度和所述关联化简任务的输入数据量的变化倍数最大值,计算所述关联任务的实际并行度。
12.根据权利要求7所述的分布式任务的处理装置,其中,所述分布式任务还包括关联任务,所述关联任务与一个以上的映射任务和一个以上的化简任务具有依赖关系;
所述分布式任务的处理装置还包括:
第三数据量变化倍数确定模块,用于将与所述关联任务具有依赖关系的所述映射任务和所述化简任务作为关联映射化简任务,获取所述关联映射化简任务的输入数据量的变化倍数最大值;
第三关联任务并行度计算模块,用于根据所述关联任务的基准并行度和所述关联映射化简任务的输入数据量的变化倍数最大值,计算所述关联任务的实际并行度。
13.一种分布式任务的处理***,其特征在于,包括存储器和处理器;
所述存储器用于储存有可执行程序代码;
所述处理器用于读取所述存储器中存储的可执行程序代码以执行权利要求1至6中任一项所述的分布式任务的处理方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-6中任一项所述的分布式任务的处理方法。
CN201810319747.1A 2018-04-11 2018-04-11 分布式任务的处理方法、装置、***和存储介质 Active CN110362387B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810319747.1A CN110362387B (zh) 2018-04-11 2018-04-11 分布式任务的处理方法、装置、***和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810319747.1A CN110362387B (zh) 2018-04-11 2018-04-11 分布式任务的处理方法、装置、***和存储介质

Publications (2)

Publication Number Publication Date
CN110362387A CN110362387A (zh) 2019-10-22
CN110362387B true CN110362387B (zh) 2023-07-25

Family

ID=68214263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810319747.1A Active CN110362387B (zh) 2018-04-11 2018-04-11 分布式任务的处理方法、装置、***和存储介质

Country Status (1)

Country Link
CN (1) CN110362387B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448692B (zh) * 2020-03-25 2024-06-14 杭州海康威视数字技术股份有限公司 分布式图计算的方法、装置、设备及存储介质
CN112231098A (zh) * 2020-09-29 2021-01-15 北京三快在线科技有限公司 任务处理方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004670A (zh) * 2009-12-17 2011-04-06 华中科技大学 一种基于MapReduce的自适应作业调度方法
CN104035747A (zh) * 2013-03-07 2014-09-10 伊姆西公司 用于并行计算的方法和装置
US20150149439A1 (en) * 2012-05-31 2015-05-28 The University Of Tokyo Analysis system, computer system, and analysis method
CN106339252A (zh) * 2015-07-08 2017-01-18 阿里巴巴集团控股有限公司 分布式dag***的自适应优化方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004670A (zh) * 2009-12-17 2011-04-06 华中科技大学 一种基于MapReduce的自适应作业调度方法
US20150149439A1 (en) * 2012-05-31 2015-05-28 The University Of Tokyo Analysis system, computer system, and analysis method
CN104035747A (zh) * 2013-03-07 2014-09-10 伊姆西公司 用于并行计算的方法和装置
CN106339252A (zh) * 2015-07-08 2017-01-18 阿里巴巴集团控股有限公司 分布式dag***的自适应优化方法和装置

Also Published As

Publication number Publication date
CN110362387A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
Le et al. Allox: compute allocation in hybrid clusters
US10831633B2 (en) Methods, apparatuses, and systems for workflow run-time prediction in a distributed computing system
Nghiem et al. Towards efficient resource provisioning in MapReduce
CN110245023B (zh) 分布式调度方法及装置、电子设备以及计算机存储介质
CN108733464B (zh) 一种确定计算任务的调度方案的方法及装置
US20140019966A1 (en) System and method for continuous optimization of computing systems with automated assignment of virtual machines and physical machines to hosts
CN103399800B (zh) 基于Linux并行计算平台的动态负载均衡方法
CN103218263A (zh) MapReduce参数的动态确定方法及装置
CN109324890B (zh) 资源管理方法、装置及计算机可读存储介质
CN111459641B (zh) 一种跨机房的任务调度和任务处理的方法及装置
CN112365070B (zh) 一种电力负荷预测方法、装置、设备及可读存储介质
JP2016042284A (ja) 並列計算機システム、管理装置、並列計算機システムの制御方法及び管理装置の制御プログラム
CN115373835A (zh) Flink集群的任务资源调整方法、装置及电子设备
CN108459905B (zh) 资源池容量规划方法及服务器
CN110362387B (zh) 分布式任务的处理方法、装置、***和存储介质
Lehmann et al. How workflow engines should talk to resource managers: A proposal for a common workflow scheduling interface
CN109634714B (zh) 一种智能调度的方法及装置
US20240176657A1 (en) Task processing method and apparatus, electronic device, storage medium and program product
KR102195886B1 (ko) 분산 처리 시스템 및 이의 동작 방법
CN109684051A (zh) 一种混合式大数据任务异步提交的方法和***
CN115033374A (zh) 一种多核可编程控制器的任务到线程匹配方法
CN114401239A (zh) 元数据传输方法、装置、计算机设备和存储介质
Vaze et al. Speed Scaling with Multiple Servers under a Sum-Power Constraint
KR101694307B1 (ko) 디스크 캐쉬 효과를 극대화하는 워크플로우 작업 스케줄링 장치 및 방법
WO2023207630A1 (zh) 一种任务求解方法及其装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant