CN109885384A - 任务并行度优化方法、装置、计算机设备及存储介质 - Google Patents
任务并行度优化方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109885384A CN109885384A CN201811527454.9A CN201811527454A CN109885384A CN 109885384 A CN109885384 A CN 109885384A CN 201811527454 A CN201811527454 A CN 201811527454A CN 109885384 A CN109885384 A CN 109885384A
- Authority
- CN
- China
- Prior art keywords
- source data
- data table
- lot size
- task
- parallelism
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种任务并行度优化方法、装置、计算机设备及存储介质,涉及云计算领域。该任务并行度优化方法包括:获取类型选择指令;根据类型选择指令确定批量调度任务类型;若批量调度任务类型为日常批量调度任务,则查询数据库中预先设置好的第一并行度,根据第一并行度运行日常批量调度任务,其中,第一并行度是根据运行统计信息确定的;若批量调度任务类型为新建批量调度任务,则获取第一源数据表和第二源数据表,第一源数据表与第二源数据表之间存在相同的字段;基于第一源数据表、第二源数据表和相同的字段得到第二并行度,并根据第二并行度运行新建批量调度任务。采用该任务并行度优化方法能够合理地设置分布式任务中的并行度,提高运行效率及运行质量。
Description
【技术领域】
本发明涉及云计算领域,尤其涉及一种任务并行度优化方法、装置、计算机设备及存储介质。
【背景技术】
对于分布式的批量数据处理任务,采用多大的并行度来执行是最关键的性能参数。目前设置并行度一般是根据开发人员经验,采用手动设置参数等方式来设置任务的并行度,采用手动设置并行度的方式对开发人员的经验要求比较高,对于没有处理过分布式的批量数据处理任务的用户而言,往往难以实现预期的分布式批量数据处理效果。
【发明内容】
有鉴于此,本发明实施例提供了一种任务并行度优化方法、装置、计算机设备及存储介质,用以解决分布式任务中并行度设置不合理的问题。
第一方面,本发明实施例提供了一种任务并行度优化方法,包括:
获取类型选择指令;
根据所述类型选择指令确定批量调度任务类型,其中,所述批量调度任务类型包括日常批量调度任务和新建批量调度任务;
若所述批量调度任务类型为日常批量调度任务,则查询数据库中预先设置好的第一并行度,根据所述第一并行度运行日常批量调度任务,其中,所述第一并行度是根据运行统计信息确定的;
若所述批量调度任务类型为新建批量调度任务,则获取第一源数据表和第二源数据表,所述第一源数据表与所述第二源数据表之间存在相同的字段;
基于所述第一源数据表、所述第二源数据表和所述相同的字段得到第二并行度,并根据所述第二并行度运行新建批量调度任务。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述若所述批量调度任务类型为日常批量调度任务,则查询数据库中预先设置好的第一并行度的步骤之前,所述方法还包括:
获取所述运行统计信息,所述运行统计信息包括分发总数据量TS;
根据每个运行节点的内存设置情况得到对应的处理容量SC;
采用公式计算得到第一并行度parallelism1;
将所述第一并行度存储到所述数据库中。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述基于所述第一源数据表、所述第二源数据表和所述相同的字段得到第二并行度,并根据所述第二并行度运行新建批量调度任务,包括:
根据所述第一源数据表和所述第二源数据表中相同的字段,从所述第一源数据表和所述第二源数据表中获取目标字段;
根据所述目标字段,将所述第一源数据表和所述第二源数据表做等值连接;
采用公式第二并行度=(mA*cA*pA+mB*cB*pB)/512计算所述第二并行度,并根据所述第二并行度运行新建批量调度任务,其中,A表示所述第一源数据表,B表示所述第二源数据表,mA表示所述第一源数据表的数据量,mB表示所述第二源数据表的数据量,cA表示所述第一源数据表的压缩比率,cB表示所述第二源数据表的压缩比率,pA表示等值连接时所述第一源数据表所需传的字段数据百分比,pB表示等值连接时所述第二源数据表所需传的字段数据百分比。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述根据所述第二并行度运行新建批量调度任务之后,所述方法还包括:
对所述日常批量调度任务或所述新建批量调度任务的运行过程进行监控。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述对所述日常批量调度任务或所述新建批量调度任务的运行过程进行监控,包括:
计算运行失败的任务的数量,若所述运行失败的任务的数量超过第一预设阈值,则发送与所述运行失败的任务相关的提醒信息;
计算任务的平均数据量和每个任务的数据量,若有任务的数据量超过基于所述任务的平均数据量的第二预设阈值,则发送与超过所述平均数据量的任务相关的提醒信息。
上述技术方案中的一个技术方案具有如下有益效果:
本发明实施例中,通过类型选择指令确定批量调度任务类型,该批量调度任务类型包括日常批量调度任务和新建批量调度任务。将并行度根据批量调度任务类型分情况进行设置,能够更合理地根据实际情况设置更适合的并行度。其中,日常批量调度任务根据第一并行度运行,该第一并行度是根据历史的运行统计信息确定的。运行统计信息有重要的参考价值,通过对运行统计信息进行特定的分析,设置合理的第一并行度,提高了日常批量调度任务的运行效率以及运行质量。针对新建批量调度任务的实际情况,第二并行度通过第一源数据表、第二源数据表以及两表之间的相同的字段计算得到,从数据处理的角度对批量调度任务的过程进行分析,能够有效提高新建批量调度任务的运行效率以及运行质量。
第二方面,本发明实施例提供了一种任务并行度优化装置,包括:
类型选择指令获取模块,用于获取类型选择指令;
批量调度任务类型确定模块,用于根据所述类型选择指令确定批量调度任务类型,其中,所述批量调度任务类型包括日常批量调度任务和新建批量调度任务;
日常批量调度任务运行模块,用于若所述批量调度任务类型为日常批量调度任务,则查询数据库中预先设置好的第一并行度,根据所述第一并行度运行日常批量调度任务,其中,所述第一并行度是根据运行统计信息确定的;
源表获取模块,用于若所述批量调度任务类型为新建批量调度任务,则获取第一源数据表和第二源数据表,所述第一源数据表与所述第二源数据表之间存在相同的字段;
新建批量调度任务运行模块,用于基于所述第一源数据表、所述第二源数据表和所述相同的字段得到第二并行度,并根据所述第二并行度运行新建批量调度任务。
第三方面,一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任务并行度优化方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,包括:计算机可执行指令,当所述计算机可执行指令被运行时,用以执行第一方面任一项所述的任务并行度优化方法。
上述技术方案中的一个技术方案具有如下有益效果:
本发明实施例中,通过类型选择指令确定批量调度任务类型,该批量调度任务类型包括日常批量调度任务和新建批量调度任务。将并行度根据批量调度任务类型分情况进行设置,能够更合理地根据实际情况设置更适合的并行度。其中,日常批量调度任务根据第一并行度运行,该第一并行度是根据历史的运行统计信息确定的。运行统计信息有重要的参考价值,通过对运行统计信息进行特定的分析,设置合理的第一并行度,提高了日常批量调度任务的运行效率以及运行质量。针对新建批量调度任务的实际情况,第二并行度通过第一源数据表、第二源数据表以及两表之间的相同的字段计算得到,从数据处理的角度对批量调度任务的过程进行分析,能够有效提高新建批量调度任务的运行效率以及运行质量。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明一实施例中基于任务并行度优化方法的一流程图;
图2是本发明一实施例中基于任务并行度优化装置的一示意图;
图3是本发明一实施例中计算机设备的一示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的相同的字段,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述预设范围等,但这些预设范围不应限于这些术语。这些术语仅用来将预设范围彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一预设范围也可以被称为第二预设范围,类似地,第二预设范围也可以被称为第一预设范围。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
图1示出本实施例中任务并行度优化方法的一流程图。该任务并行度优化方法可应用在进行批量调度任务的系统中,用于实现设置合理的任务并行度的目的,具体可应用在计算机设备上。其中,该计算机设备是可与用户进行人机交互的设备,包括但不限于电脑、智能手机和平板等设备。如图1所示,该任务并行度优化方法包括如下步骤:
S10:获取类型选择指令。
S20:根据类型选择指令确定批量调度任务类型,其中,批量调度任务类型包括日常批量调度任务和新建批量调度任务。
其中,类型选择指令是指选择批量调度任务类型的指令。
在一实施例中,批量调度任务系统根据用户输入的类型选择指令,确定批量调度任务类型是日常批量调度任务还是新建批量调度任务,以根据不同的批量调度任务类型更合理地设置并行度。具体地,类型选择指令携带调度任务类型的标识,分别为日常批量调度任务的标识A和新建批量调度任务的标识B,批量调度系统根据类型选择指令携带的标识确定批量调度任务类型是日常批量调度任务还是新建批量调度任务。
S30:若批量调度任务类型为日常批量调度任务,则查询数据库中预先设置好的第一并行度,根据第一并行度运行日常批量调度任务,其中,第一并行度是根据运行统计信息确定的。
其中,运行统计信息是批量调度任务系统时历史的运行状况进行统计的信息。
在一实施例中,当批量调度任务类型为日常批量调度任务时,可以采用运行统计信息确定的第一并行度作为当前的并行度。运行统计信息有重要的参考价值,可以通过运行统计信息设置合理的第一并行度,能够有效提高日常批量调度任务的运行效率以及运行质量。
S40:若批量调度任务类型为新建批量调度任务,则获取第一源数据表和第二源数据表,第一源数据表与第二源数据表之间存在相同的字段。
其中,源数据表即提供数据信息的数据表,在本实施例中,表示运行新建批量调度任务时所处理的数据表。这里的第一源数据表和第二源数据表表示不同的源数据表,而不应认为源数据表只有两个,源数据表可以有多个,在存在相同的字段的不同的源数据表相互之间分别称为第一源数据表和第二源数据表。
S50:基于第一源数据表、第二源数据表和相同的字段得到第二并行度,并根据第二并行度运行新建批量调度任务。
在一实施例中,当批量调度任务类型为新建批量调度任务时,可以根据实际所需处理的数据表设置合理的并行度,即第二并行度。该第二并行度是从数据处理的角度对批量调度任务的过程进行分析,基于第一源数据表、第二源数据表和相同的字段得到的。针对新建批量调度任务设置合理的第二并行度,能够提高新建批量调度任务的运行效率以及运行质量。
在一实施例中,在步骤S30之前,即在若批量调度任务类型为日常批量调度任务,即查询数据库中预先设置好的第一并行度的步骤之前,还包括如下步骤:
S31:获取运行统计信息,运行统计信息包括分发总数据量TS。
S32:根据每个运行节点的内存设置情况得到对应的处理容量SC。
S33:采用公式计算得到第一并行度parallelism1。
S34:将第一并行度存储到数据库中。
步骤S31-S34中,运行统计信息可以取最近三天的运行统计信息作为参考,分发总数据量TS(total shuffle)是指要进行处理的总数据量。这里的分发是指在运行批量调度任务时,将数据分配发送到多个运行节点上进行处理,数据的分发具体可以采用哈希函数实现。
每个运行节点(executor)对应的处理容量SC(store capacity)可以根据内存设置情况得到。可选地,内存设置情况具体可以是采用JVM(Java Virtual Machine,Java虚拟机)的内存设置。
在一实施例中,可以根据得到的分发总数据量TS和每个运行节点对应的处理容量SC计算得到第一并行度parallelism1,具体采用的公式可以是采用该公式计算得到的第一并行度充分考虑了分发总数据量TS和每个运行节点对应的处理容量SC之间的关系,从每个运行节点的处理容量SC出发,考虑在批量调度任务中每个运行节点的处理能力,得到合理的第一并行度,采用该第一并行度能够充分利用每个运行节点的处理能力,有效提高了运行效率以及运行质量。
在根据运行统计信息得到第一并行度后,将第一并行度存储到数据库中,以后续在进行日常批量调度任务时直接调用该第一并行度作为当前的并行度,能够提高批量调度任务的运行效率以及运行质量。
在一实施例中,步骤S50中,基于第一源数据表、第二源数据表和相同的字段得到第二并行度,并根据第二并行度运行新建批量调度任务,具体包括如下步骤:
S511:根据第一源数据表和第二源数据表中相同的字段,从第一源数据表和第二源数据表中获取目标字段。
S512:根据目标字段,将第一源数据表和第二源数据表做等值连接。
S513:采用公式第二并行度=(mA*cA*pA+mB*cB*pB)/512计算第二并行度,并根据第二并行度运行新建批量调度任务,其中,A表示第一源数据表,B表示第二源数据表,mA表示第一源数据表的数据量,mB表示第二源数据表的数据量,cA表示第一源数据表的压缩比率,cB表示第二源数据表的压缩比率,pA表示等值连接时第一源数据表所需传的字段数据百分比,pB表示等值连接时第二源数据表所需传的字段数据百分比。
步骤S511-S513中,在进行新建批量调度任务时,需要获取该批量调度任务下提供源数据的第一源数据表和第二源数据表。第一源数据表和第二源数据表中存在相同的字段,能够基于相同的字段做两表之间多种类型的数据处理(包括但不限于笛卡尔积、等值连接和自然连接的数据处理类型),其中,并不是所有相同的字段都需要用到,因此,可以从相同的字段中获取与所要进行的数据处理的类型相应的目标字段。
在一实施例中,根据目标字段,将第一源数据表和第二源数据表做等值连接,其中,等值连接是关系运算-连接运算的一种常用的连接方式,是数据处理的其中一种类型。在等值连接后,可以采用公式第二并行度=(mA*cA*pA+mB*cB*pB)/512计算第二并行度,并根据第二并行度运行新建批量调度任务,其中,A表示第一源数据表,B表示第二源数据表,mA表示第一源数据表的数据量,mB表示第二源数据表的数据量,cA表示第一源数据表的压缩比率,cB表示第二源数据表的压缩比率,pA表示等值连接时第一源数据表所需传的字段数据百分比,pB表示等值连接时第二源数据表所需传的字段数据百分比。
针对新建批量调度任务的实际情况,第二并行度通过第一源数据表、第二源数据表以及两表之间的相同的字段计算得到,从数据处理的角度对批量调度任务的过程进行分析,能够有效提高新建批量调度任务的运行效率以及运行质量。
在一实施例中,在步骤S50之后,即在根据第二并行度运行新建批量调度任务之后的步骤之后,还包括如下步骤:
对日常批量调度任务或新建批量调度任务的运行过程进行监控。
在一实施例中,在对日常批量调度任务或新建批量调度任务的运行过程进行监控的步骤中,具体包括如下步骤:
S521:计算运行失败的任务的数量,若运行失败的任务的数量超过第一预设阈值,则发送与运行失败的任务相关的提醒信息。
需要说明的是,这里的任务即日常批量调度任务或新建批量调度任务中具体运行的任务。
具体地,可以根据运行失败的任务的数量和第一预设阈值进行比较,将超出第一预设阈值的运行失败的任务的信息反馈给用户。
S522:计算任务的平均数据量和每个任务的数据量,若有任务的数据量超过基于任务的平均数据量的第二预设阈值,则发送与超过平均数据量的任务相关的提醒信息。
其中,基于任务的平均数据量的第二预设阈值是指在任务的平均数据量的基础上设置的阈值,如当任务的平均数据量为512M,则基于任务的平均数据量的第二预设阈值可以设置为1G。可以理解地,在运行批量调度任务时,每个运行节点的数据处理能力是不同的,通过计算任务的平均数据量分析每个运行节点的运行情况,以对新建批量调度任务的运行过程进行监控,保证运行质量。具体地,如运行节点总共12G内存,支持3线程运行,也即可以同时处理3个任务,这样每个任务平均可以处理4G数据,考虑到复杂的数据结构在JVM内存的占用一般能到磁盘文件的10倍,则可以取4G的十分之一作为任务的平均数据量。
在一实施例中,可以根据每个任务的数据量和基于任务的平均数据量的第二预设阈值进行比较,将超出第二预设阈值的任务的信息反馈给用户。
S521-S522能够有效地监控任务的运行稳定性,并及时提醒用户,保证任务的运行质量。
本发明实施例的技术方案具有以下有益效果:
本发明实施例中,通过类型选择指令确定批量调度任务类型,该批量调度任务类型包括日常批量调度任务和新建批量调度任务。将并行度根据批量调度任务类型分情况进行设置,能够更合理地根据实际情况设置更适合的并行度。其中,日常批量调度任务根据第一并行度运行,该第一并行度是根据历史的运行统计信息确定的。运行统计信息有重要的参考价值,通过对运行统计信息进行特定的分析,设置合理的第一并行度,提高了日常批量调度任务的运行效率以及运行质量。针对新建批量调度任务的实际情况,第二并行度通过第一源数据表、第二源数据表以及两表之间的相同的字段计算得到,从数据处理的角度对批量调度任务的过程进行分析,能够有效提高新建批量调度任务的运行效率以及运行质量。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
基于实施例中所提供的任务并行度优化方法,本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。
图2示出与实施例中任务并行度优化方法一一对应的任务并行度优化装置的原理框图。如图2所示,该任务并行度优化装置包括类型选择指令获取模块10、批量调度任务类型确定模块20、日常批量调度任务运行模块30、源表获取模块40和新建批量调度任务运行模块50。其中,类型选择指令获取模块10、批量调度任务类型确定模块20、日常批量调度任务运行模块30、源表获取模块40和新建批量调度任务运行模块50的实现功能与实施例中任务并行度优化方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。
类型选择指令获取模块10,用于获取类型选择指令。
批量调度任务类型确定模块20,用于根据类型选择指令确定批量调度任务类型,其中,批量调度任务类型包括日常批量调度任务和新建批量调度任务。
日常批量调度任务运行模块30,用于若批量调度任务类型为日常批量调度任务,则查询数据库中预先设置好的第一并行度,根据第一并行度运行日常批量调度任务,其中,第一并行度是根据运行统计信息确定的。
源表获取模块40,用于若批量调度任务类型为新建批量调度任务,则获取第一源数据表和第二源数据表,第一源数据表与第二源数据表之间存在相同的字段。
新建批量调度任务运行模块50,用于基于第一源数据表、第二源数据表和相同的字段得到第二并行度,并根据第二并行度运行新建批量调度任务。
可选地,任务并行度优化装置还包括运行统计信息获取单元、处理容量获取单元、第一并行度获取单元和存储单元。
运行统计信息获取单元,用于获取运行统计信息,运行统计信息包括分发总数据量TS。
处理容量获取单元,用于根据每个运行节点的内存设置情况得到对应的处理容量SC。
第一并行度获取单元,用于采用公式计算得到第一并行度parallelism1。
存储单元,用于将第一并行度存储到数据库中。
可选地,新建批量调度任务运行模块50包括目标字段获取单元、等值连接单元和新建批量调度任务运行单元。
目标字段获取单元,用于根据第一源数据表和第二源数据表中相同的字段,从第一源数据表和第二源数据表中获取目标字段。
等值连接单元,用于根据目标字段,将第一源数据表和第二源数据表做等值连接。
新建批量调度任务运行单元,用于采用公式第二并行度=(mA*cA*pA+mB*cB*pB)/512计算第二并行度,并根据第二并行度运行新建批量调度任务,其中,A表示第一源数据表,B表示第二源数据表,mA表示第一源数据表的数据量,mB表示第二源数据表的数据量,cA表示第一源数据表的压缩比率,cB表示第二源数据表的压缩比率,pA表示等值连接时第一源数据表所需传的字段数据百分比,pB表示等值连接时第二源数据表所需传的字段数据百分比。
可选地,任务并行度优化装置还包括监控单元,用于对日常批量调度任务或新建批量调度任务的运行过程进行监控。
可选地,监控单元包括失败任务监控子单元和任务数据量监控子单元。
失败任务监控子单元,用于计算运行失败的任务的数量,若运行失败的任务的数量超过第一预设阈值,则发送与运行失败的任务相关的提醒信息。
任务数据量监控子单元,用于计算任务的平均数据量和每个任务的数据量,若有任务的数据量超过基于任务的平均数据量的第二预设阈值,则发送与超过平均数据量的任务相关的提醒信息。
由于本实施例中的各单元能够执行实施例中所示的任务并行度优化方法,本实施例未详细描述的部分,可参考对实施例中任务并行度优化方法的相关说明。
本发明实施例的技术方案具有以下有益效果:
本发明实施例中,通过类型选择指令确定批量调度任务类型,该批量调度任务类型包括日常批量调度任务和新建批量调度任务。将并行度根据批量调度任务类型分情况进行设置,能够更合理地根据实际情况设置更适合的并行度。其中,日常批量调度任务根据第一并行度运行,该第一并行度是根据历史的运行统计信息确定的。运行统计信息有重要的参考价值,通过对运行统计信息进行特定的分析,设置合理的第一并行度,提高了日常批量调度任务的运行效率以及运行质量。针对新建批量调度任务的实际情况,第二并行度通过第一源数据表、第二源数据表以及两表之间的相同的字段计算得到,从数据处理的角度对批量调度任务的过程进行分析,能够有效提高新建批量调度任务的运行效率以及运行质量。
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例中任务并行度优化方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器执行时实现实施例中任务并行度优化装置中各模块/单元的功能,为避免重复,此处不一一赘述。
图3是本发明一实施例提供的计算机设备的示意图。如图3所示,该实施例的计算机设备60包括:处理器61、存储器62以及存储在存储器62中并可在处理器61上运行的计算机程序63,该计算机程序63被处理器61执行时实现实施例中的任务并行度优化方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器61执行时实现实施例中任务并行度优化装置中各模型/单元的功能,为避免重复,此处不一一赘述。
计算机设备60可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,处理器61、存储器62。本领域技术人员可以理解,图3仅仅是计算机设备60的示例,并不构成对计算机设备60的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器61可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器62可以是计算机设备60的内部存储单元,例如计算机设备60的硬盘或内存。存储器62也可以是计算机设备60的外部存储设备,例如计算机设备60上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器62还可以既包括计算机设备60的内部存储单元也包括外部存储设备。存储器62用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器62还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种任务并行度优化方法,其特征在于,所述方法包括:
获取类型选择指令;
根据所述类型选择指令确定批量调度任务类型,其中,所述批量调度任务类型包括日常批量调度任务和新建批量调度任务;
若所述批量调度任务类型为日常批量调度任务,则查询数据库中预先设置好的第一并行度,根据所述第一并行度运行日常批量调度任务,其中,所述第一并行度是根据运行统计信息确定的;
若所述批量调度任务类型为新建批量调度任务,则获取第一源数据表和第二源数据表,所述第一源数据表与所述第二源数据表之间存在相同的字段;
基于所述第一源数据表、所述第二源数据表和所述相同的字段得到第二并行度,并根据所述第二并行度运行新建批量调度任务。
2.根据权利要求1所述的方法,其特征在于,在所述若所述批量调度任务类型为日常批量调度任务,则查询数据库中预先设置好的第一并行度的步骤之前,所述方法还包括:
获取所述运行统计信息,所述运行统计信息包括分发总数据量TS;
根据每个运行节点的内存设置情况得到对应的处理容量SC;
采用公式计算得到第一并行度parallelism1;
将所述第一并行度存储到所述数据库中。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一源数据表、所述第二源数据表和所述相同的字段得到第二并行度,并根据所述第二并行度运行新建批量调度任务,包括:
根据所述第一源数据表和所述第二源数据表中相同的字段,从所述第一源数据表和所述第二源数据表中获取目标字段;
根据所述目标字段,将所述第一源数据表和所述第二源数据表做等值连接;
采用公式第二并行度=(mA*cA*pA+mB*cB*pB)/512计算所述第二并行度,并根据所述第二并行度运行新建批量调度任务,其中,A表示所述第一源数据表,B表示所述第二源数据表,mA表示所述第一源数据表的数据量,mB表示所述第二源数据表的数据量,cA表示所述第一源数据表的压缩比率,cB表示所述第二源数据表的压缩比率,pA表示等值连接时所述第一源数据表所需传的字段数据百分比,pB表示等值连接时所述第二源数据表所需传的字段数据百分比。
4.根据权利要求1至3任一项所述的方法,其特征在于,在所述根据所述第二并行度运行新建批量调度任务之后,所述方法还包括:
对所述日常批量调度任务或所述新建批量调度任务的运行过程进行监控。
5.根据权利要求4所述的方法,其特征在于,所述对所述日常批量调度任务或所述新建批量调度任务的运行过程进行监控,包括:
计算运行失败的任务的数量,若所述运行失败的任务的数量超过第一预设阈值,则发送与所述运行失败的任务相关的提醒信息;
计算任务的平均数据量和每个任务的数据量,若有任务的数据量超过基于所述任务的平均数据量的第二预设阈值,则发送与超过所述平均数据量的任务相关的提醒信息。
6.一种任务并行度优化装置,其特征在于,所述装置包括:
类型选择指令获取模块,用于获取类型选择指令;
批量调度任务类型确定模块,用于根据所述类型选择指令确定批量调度任务类型,其中,所述批量调度任务类型包括日常批量调度任务和新建批量调度任务;
日常批量调度任务运行模块,用于若所述批量调度任务类型为日常批量调度任务,则查询数据库中预先设置好的第一并行度,根据所述第一并行度运行日常批量调度任务,其中,所述第一并行度是根据运行统计信息确定的;
源表获取模块,用于若所述批量调度任务类型为新建批量调度任务,则获取第一源数据表和第二源数据表,所述第一源数据表与所述第二源数据表之间存在相同的字段;
新建批量调度任务运行模块,用于基于所述第一源数据表、所述第二源数据表和所述相同的字段得到第二并行度,并根据所述第二并行度运行新建批量调度任务。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
运行统计信息获取单元,用于获取所述运行统计信息,所述运行统计信息包括分发总数据量TS;
处理容量获取单元,用于根据每个运行节点的内存设置情况得到对应的处理容量SC;
第一并行度获取单元,用于采用公式计算得到第一并行度parallelism1;
存储单元,用于将所述第一并行度存储到所述数据库中。
8.根据权利要求6所述的装置,其特征在于,所述新建批量调度任务运行模块,包括:
目标字段获取单元,用于根据所述第一源数据表和所述第二源数据表中相同的字段,从所述第一源数据表和所述第二源数据表中获取目标字段;
等值连接单元,用于根据所述目标字段,将所述第一源数据表和所述第二源数据表做等值连接;
新建批量调度任务运行单元,用于采用公式第二并行度=(mA*cA*pA+mB*cB*pB)/512计算所述第二并行度,并根据所述第二并行度运行新建批量调度任务,其中,A表示所述第一源数据表,B表示所述第二源数据表,mA表示所述第一源数据表的数据量,mB表示所述第二源数据表的数据量,cA表示所述第一源数据表的压缩比率,cB表示所述第二源数据表的压缩比率,pA表示等值连接时所述第一源数据表所需传的字段数据百分比,pB表示等值连接时所述第二源数据表所需传的字段数据百分比。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述任务并行度优化方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述任务并行度优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811527454.9A CN109885384B (zh) | 2018-12-13 | 2018-12-13 | 任务并行度优化方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811527454.9A CN109885384B (zh) | 2018-12-13 | 2018-12-13 | 任务并行度优化方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109885384A true CN109885384A (zh) | 2019-06-14 |
CN109885384B CN109885384B (zh) | 2023-02-07 |
Family
ID=66925022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811527454.9A Active CN109885384B (zh) | 2018-12-13 | 2018-12-13 | 任务并行度优化方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885384B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457159A (zh) * | 2019-08-21 | 2019-11-15 | 深圳前海微众银行股份有限公司 | 一种处理批量任务的方法、装置、计算设备及存储介质 |
CN113296964A (zh) * | 2021-07-28 | 2021-08-24 | 阿里云计算有限公司 | 数据处理方法及装置 |
WO2024078080A1 (zh) * | 2022-10-14 | 2024-04-18 | 华为技术有限公司 | 数据库查询方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5121494A (en) * | 1989-10-05 | 1992-06-09 | Ibm Corporation | Joining two database relations on a common field in a parallel relational database field |
CN1357172A (zh) * | 1998-12-04 | 2002-07-03 | 高通股份有限公司 | 利用线性同余序列的turbo码交织器 |
EP1873665A1 (en) * | 2006-06-28 | 2008-01-02 | Interuniversitair Microelektronica Centrum | Method for exploring feasibility of an electronic system design |
CN101674194A (zh) * | 2009-09-28 | 2010-03-17 | 北京航空航天大学 | 基于日志特征分析的机群负载模型及其建模方法 |
US20130006955A1 (en) * | 2011-06-28 | 2013-01-03 | Amadeus S.A.S | Method and system for processing data for database modification |
CN105868025A (zh) * | 2016-03-30 | 2016-08-17 | 华中科技大学 | 一种解决大数据处理系统中内存资源激烈竞争的系统 |
US20180032373A1 (en) * | 2016-07-29 | 2018-02-01 | Hewlett Packard Enterprise Development Lp | Managing data processing resources |
CN108509515A (zh) * | 2018-03-09 | 2018-09-07 | 广州天维信息技术股份有限公司 | 一种监控数据库批处理的方法和系统 |
-
2018
- 2018-12-13 CN CN201811527454.9A patent/CN109885384B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5121494A (en) * | 1989-10-05 | 1992-06-09 | Ibm Corporation | Joining two database relations on a common field in a parallel relational database field |
CN1357172A (zh) * | 1998-12-04 | 2002-07-03 | 高通股份有限公司 | 利用线性同余序列的turbo码交织器 |
EP1873665A1 (en) * | 2006-06-28 | 2008-01-02 | Interuniversitair Microelektronica Centrum | Method for exploring feasibility of an electronic system design |
CN101674194A (zh) * | 2009-09-28 | 2010-03-17 | 北京航空航天大学 | 基于日志特征分析的机群负载模型及其建模方法 |
US20130006955A1 (en) * | 2011-06-28 | 2013-01-03 | Amadeus S.A.S | Method and system for processing data for database modification |
CN105868025A (zh) * | 2016-03-30 | 2016-08-17 | 华中科技大学 | 一种解决大数据处理系统中内存资源激烈竞争的系统 |
US20180032373A1 (en) * | 2016-07-29 | 2018-02-01 | Hewlett Packard Enterprise Development Lp | Managing data processing resources |
CN108509515A (zh) * | 2018-03-09 | 2018-09-07 | 广州天维信息技术股份有限公司 | 一种监控数据库批处理的方法和系统 |
Non-Patent Citations (2)
Title |
---|
卞昊穹 等: "Spark上的等值连接优化", 《华东师范大学学报(自然科学版)》 * |
王辉煌: "基于SPARK的论坛数据分析平台的设计与实现", 《中国优秀硕博士学位论文全文数据库(硕士)信息科技辑(月刊)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457159A (zh) * | 2019-08-21 | 2019-11-15 | 深圳前海微众银行股份有限公司 | 一种处理批量任务的方法、装置、计算设备及存储介质 |
CN113296964A (zh) * | 2021-07-28 | 2021-08-24 | 阿里云计算有限公司 | 数据处理方法及装置 |
WO2024078080A1 (zh) * | 2022-10-14 | 2024-04-18 | 华为技术有限公司 | 数据库查询方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109885384B (zh) | 2023-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Alipourfard et al. | {CherryPick}: Adaptively unearthing the best cloud configurations for big data analytics | |
Venkataraman et al. | The power of choice in {Data-Aware} cluster scheduling | |
CN109993299B (zh) | 数据训练方法及装置、存储介质、电子装置 | |
CN104915407B (zh) | 一种基于Hadoop多作业环境下的资源调度方法 | |
Ishii et al. | Elastic stream computing with clouds | |
Dogar et al. | Decentralized task-aware scheduling for data center networks | |
Bilal et al. | Towards automatic parameter tuning of stream processing systems | |
Li et al. | Traffic-aware geo-distributed big data analytics with predictable job completion time | |
US7769856B2 (en) | Automatic tuning of communication protocol performance | |
CN105808328B (zh) | 任务调度的方法、装置和系统 | |
CN103761146B (zh) | 一种MapReduce动态设定slots数量的方法 | |
CN108733464B (zh) | 一种确定计算任务的调度方案的方法及装置 | |
CN109885384A (zh) | 任务并行度优化方法、装置、计算机设备及存储介质 | |
CN113296905B (zh) | 调度方法、装置、电子设备、存储介质及软件产品 | |
CN109726004B (zh) | 一种数据处理方法及装置 | |
US8606905B1 (en) | Automated determination of system scalability and scalability constraint factors | |
Konstantinou et al. | Tiramola: elastic nosql provisioning through a cloud management platform | |
CN108845874A (zh) | 资源的动态分配方法及服务器 | |
EP3118784A1 (en) | Method and system for enabling dynamic capacity planning | |
CN106293947B (zh) | 虚拟化云环境下gpu-cpu混合资源分配系统和方法 | |
CN110300188A (zh) | 数据传输系统、方法和设备 | |
Higashino et al. | Cepsim: A simulator for cloud-based complex event processing | |
US9384051B1 (en) | Adaptive policy generating method and system for performance optimization | |
CN110008049A (zh) | 一种基于互联网平台的数据修正方法、终端设备及介质 | |
CN108132840B (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 |