CN109274711B - 集群计算方法、装置及计算机可读存储介质 - Google Patents
集群计算方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109274711B CN109274711B CN201810917843.6A CN201810917843A CN109274711B CN 109274711 B CN109274711 B CN 109274711B CN 201810917843 A CN201810917843 A CN 201810917843A CN 109274711 B CN109274711 B CN 109274711B
- Authority
- CN
- China
- Prior art keywords
- computing
- calculation
- cluster
- task
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 133
- 238000012544 monitoring process Methods 0.000 claims abstract description 15
- 238000005192 partition Methods 0.000 claims description 42
- 230000005540 biological transmission Effects 0.000 claims description 21
- 239000004744 fabric Substances 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 238000000034 method Methods 0.000 abstract description 15
- 238000012545 processing Methods 0.000 abstract description 8
- 239000002699 waste material Substances 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
Abstract
本发明实施例涉及分布式数据处理技术领域,公开了一种集群计算方法、装置及计算机可读存储介质。该集群计算方法包括:监控计算任务的当前计算结构在集群上的计算状态;根据计算状态判断是否满足计算任务的计算结构的更新条件,若满足更新条件,则根据计算状态计算得到新的计算结构,并将计算任务的剩余数据切换至新的计算结构进行计算;其中,新的计算结构的计算效率大于当前计算结构的计算效率。本发明实施方式通过在计算任务的执行过程中动态调整计算结构,从而提高集群资源的利用效率以及计算任务的计算效率。
Description
技术领域
本发明实施例涉及分布式数据处理技术领域,特别涉及一种集群计算方法、装置及计算机可读存储介质。
背景技术
伴随着信息技术的快速发展,人们产生和需要处理的数据量飞速增长,基于分布式集群计算的大数据技术越来越多地被应用到各个领域之中。其中SQL(Structured QueryLanguage,结构化查询语言)作为一种普及度高、学习成本低的数据操作语言,被越来越多的大数据处理系统集成进来,用作计算逻辑构建的工具。
在现有的分布式大数据计算系统中,一个流式或者批式的计算任务,最终都可以表示为一个可以用类似有向无环图(Directed Acyclic Graph,简称DAG)的流程图表示的计算逻辑图,图中的每一个节点代表计算任务中的一个计算逻辑节点。实际计算时,节点之间以不同的连接方式进行数据传输,数据传输方式与所有的计算逻辑节点共同构成了分布式计算的计算结构。
发明人发现现有技术中至少存在如下问题:对于一个计算任务而言,计算结构设定完成后,在该计算任务执行完毕或被取消之前,计算结构是不会改变的。但是在一个计算任务的运行过程中,计算任务的外部环境和内部状态并不是一成不变,最初预设置的计算结构不一定一直是最优的,可能造成计算资源利用的浪费。
发明内容
本发明实施方式的目的在于提供一种集群计算方法、装置及计算机可读存储介质,通过在计算任务的执行过程中动态调整计算结构,从而提高集群资源的利用效率以及计算任务的计算效率。
为解决上述技术问题,本发明的实施方式提供了一种集群计算方法,包括:监控计算任务的当前计算结构在集群上的计算状态;根据所述计算状态判断是否满足所述计算任务的计算结构的更新条件,若满足所述更新条件,则根据所述计算状态计算得到新的计算结构,并将所述计算任务的剩余数据切换至所述新的计算结构进行计算;其中,所述新的计算结构的计算效率大于所述当前计算结构的计算效率。
本发明的实施方式还提供了一种集群计算装置,包括:监控模块,用于监控计算任务的当前计算结构在集群上的计算状态;判断模块,用于根据所述计算状态判断是否满足所述计算任务的计算结构的更新条件;计算结构计算模块,用于在所述判断模块判断出满足所述更新条件时根据所述监控模块监控的所述计算状态计算得到新的计算结构;其中,所述新的计算结构的计算效率大于所述当前计算结构的计算效率;切换模块,用于将所述计算任务的剩余数据切换至所述新的计算结构进行计算。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如前所述的集群计算方法。
本发明实施方式相对于现有技术而言,通过监控计算任务的当前计算结构在集群上的计算状态,并判断是否满足计算任务的计算结构的更新条件,在满足更新条件时,根据计算状态计算得到新的计算结构,并将计算任务的剩余数据切换至新的计算结构进行计算,从而实现计算结构在运行过程中的动态调整,由于新的计算结构的计算效率大于当前计算结构的计算效率,所以可提高对集群资源的利用效率以及计算任务的计算效率。
另外,所述计算任务的当前计算结构在集群上的计算状态包括:所述当前计算结构中的数据分布状态;所述根据所述计算状态判断是否满足所述计算任务的计算结构的更新条件具体包括:根据所述当前计算结构中的数据分布状态计算得到当前消耗评分,若所述当前消耗评分大于预设阈值,则判定满足所述更新条件。从而为计算结构是否需要更新提供了一种简单有效的判断方式。
另外,根据所述计算状态计算得到新的计算结构,具体包括:根据所述计算状态获取所述计算任务对应的多个预设计算结构;分别计算每个所述预设计算结构的消耗评分,将计算得到的消耗评分低于所述预设阈值的其中一个计算结构作为新的计算结构。
另外,将计算得到的消耗评分最小的一个计算结构作为新的计算结构。从而使得新的计算结构更有利于充分利用集群资源,提高计算效率。
另外,所述根据所述计算状态获取所述计算任务对应的多个预设计算结构,具体包括:在所述计算任务的数据发生倾斜时,在所述计算结构中采用哈希数据传输策略;在所述计算任务的数据未发生倾斜时,在所述计算结构中采用平行数据传输策略。从而可以根据实际数据情况高效传输数据。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式集群计算方法的流程图;
图2是根据本发明第二实施方式集群计算装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种集群计算方法,可应用于SQL等的集群的批式或者流式计算任务的处理,本实施方式对于集群的类型不作具体限制。该集群计算方法包括:监控计算任务的当前计算结构在集群上的计算状态,根据计算状态判断是否满足计算任务的计算结构的更新条件,若满足更新条件,则根据计算状态计算得到新的计算结构,并将计算任务的剩余数据切换至新的计算结构进行计算,其中,新的计算结构的计算效率大于当前计算结构的计算效率。从而实现计算任务运行过程中计算结构的动态调整,提高对资源的利用效率以及计算任务的计算效率。
下面对本实施方式的集群计算方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
请参阅图1,本实施方式中的集群计算方法包括步骤101至步骤104。
步骤101:监控计算任务的当前计算结构在集群上的计算状态。
在实际应用中,在步骤101之前,集群计算方法一般还包括对计算任务的计算结构的初始化操作,在计算结构初始化时,可以监控集群的运行状态,包括但不限于数据流量、集群的CPU负载、内存负载以及磁盘状态等。然后获取集群的运行状态,结合计算任务的计算特点,计算出该计算任务的初始计算结构。
具体地,一个集群的计算任务一般会被划分为多个步骤(亦可称为operator)去顺序执行,例如划分为operator-1、operator-2、operator-3...operator-m等的m个步骤顺序执行,每一个步骤(operator)被分布到多个计算分片(亦可称为partition)上进行计算,其中,每个operator的计算分片可以相同也可以不同。该计算任务的计算结构包括:划分出的operator结构以及前后operator的partition之间的数据传输规则。初始计算结构一般为根据计算任务即将开始执行前集群的运行状态以及计算任务的特点计算得到的最佳计算结构。
本实施方式中,在计算任务执行过程中,亦实时或者周期性地监控计算任务的当前计算结构在集群上的计算状态。监控的对象不仅可包括上述集群的运行状态,亦可包括该计算任务的计算结构中的数据状态。
举例而言,针对一个计算任务,该计算任务例如需要从kafka获取类似于“123,XYZ,1234124,2018-05-16,false”格式的数据,然后按照“,”字符对获取的数据进行切分,并将切分后的每个子字符串转化为int(整型)、String(字符串型)、long(长整型)、timestamp(时间戳型)、boolean(布尔型)等具体的数据类型,然后再输出到kafka。
计算框架对该计算任务进行解析,获取监控的集群的当前运行状态,结合计算框架对于该计算任务的解析结果,将该计算任务切分为两个operator:operator1与operator2。其中operator1负责数据的读取、切分、转化,operator2负责数据的写出。每个operator都分为16个partition并行执行(partition0~partition15),两个operator的partition之间平行传递数据,即operator1的partition0传递数据到operator2的partition0,以此类推。
在计算任务运行到某一时刻,从kafka传来的数据出现数据倾斜,operator1中的所有partition中,某几个partition的数据量暴增,而其他partition中的数据里骤减或者没有需要处理的数据,导致该计算任务的计算效率骤然降低。此时,通过步骤101即可监控到上述异常情况。
步骤102:根据计算状态判断是否满足计算任务的计算结构的更新条件,若满足更新条件,则执行步骤103,若不满足更新条件,则返回步骤101。
该计算任务的当前计算结构在集群上的计算状态包括:当前计算结构中的数据分布状态。步骤102具体包括:根据当前计算结构中的数据分布状态计算得到当前消耗评分,若当前消耗评分大于预设阈值,则判定满足更新条件,若当前消耗评分小于或者等于预设阈值,则判定不满足更新条件。
其中,当前消耗评分用于反映在一定的资源占用情况下的计算结构的计算效率。例如,当operator1中的5个partition的数据暴增,而5个partition中的数据骤减而基本没有数据时,则意味着operator1中有5个partition对应的计算资源处于浪费状态,相应地,在operator1与operator2的partition之间的数据采用平行传输方式时,operator2中的5个partition所占用的资源也是无效利用状态,因此,整个计算结构中的16个partition中,有5个partition未被有效利用。而消费评分即可用于反映计算结构中的partition的浪费情况,浪费情况越轻,则计算效率越高,浪费情况越严重,则计算效率越低。当然,消费评分并不局限于根据partition的使用情况对计算效率进行评估。
步骤103:根据计算状态计算得到新的计算结构。
步骤103具体包括:根据计算状态获取计算任务对应的多个预设计算结构,分别计算每个预设计算结构的消耗评分,将计算得到的消耗评分低于预设阈值的其中一个计算结构作为新的计算结构。换言之,可以对计算结构中的每一部分进行重新计算,并尝试每一种可能的计算结构在当前情况下的消耗评分,将计算得到的消耗评分最小的一个计算结构作为新的计算结构,然不限于此,实际应用中可将计算得到的消耗评分低于预设阈值的其中一个计算结构作为新的计算结构。在实际应用中,也可预先建立并存储数据情况与计算结构的对应关系,并从预存的对应关系中查找得到与当前的数据情况匹配的计算结构。需要说明的是,步骤103的计算方式可以与初始计算结构的计算方式相同,并可沿用现有的计算结构计算方式,此处不再赘述。
值得一提的是,根据计算状态获取计算任务对应的多个预设计算结构,具体包括:在计算任务的数据发生倾斜时,在计算结构中采用哈希数据传输策略,在计算任务的数据未发生倾斜时,在计算结构中采用平行数据传输策略。
下面举例一种新的计算结构,新的计算结构例如是:将operator1拆分为operator10和operator11两个operator,operator10只负责kafka数据的读取,operator11负责读取的数据的切分、转化。每个operator的partiton数量仍为16,operator10到operator11的partition之间的数据传递可以采用哈希(hash)数据传输方式,即通过一定的随机计算规则,保证operator10中的每个partition的数据都有可能传送到operator11中的每一个partition中,这样数据到达operator11时,不会再产生数据倾斜,有利于提高计算效率。
步骤104:并将计算任务的剩余数据切换至新的计算结构进行计算。
步骤104中,可以依照计算结果正确的原则,对于原来的计算结构中未处理完毕的数据进行可行的处理,例如继续采用原来的计算结构直到该部分数据计算完毕,而对于新读取的数据,则需要按照新构建的计算结构进行分发并计算,然不限于此,只要能够保证计算结果正确且不影响计算效率即可。
在实际应用中,在步骤104中,需要根据步骤103计算得到的新的计算结构,对集群进行分配与回收。例如,当现有的两个operator需要被合并为一个operator时,需要对合并后被释放的计算资源进行回收,当现有的operator需要拆成多个operator时,需要分配新的计算资源来支持计算结构的变化。
本实施方式中,在完成计算结构的切换之后,可以重复执行步骤101至步骤104,直到该计算任务结束或者被终止。
本实施方式相对于现有技术而言,可在不影响整体计算的正确性和安全性的前提下,提高集群中单个计算任务对于集群资源的利用率,提高计算任务的执行效率。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第二实施方式涉及一种集群计算装置,如图2所示,该集群计算装置2包括:
监控模块201,用于监控计算任务的当前计算结构在集群上的计算状态;
判断模块202,用于根据计算状态判断是否满足计算任务的计算结构的更新条件,并在满足更新条件时触发计算结构计算模块203,在不满足更新条件时,继续调用监控模块201;
计算结构计算模块203,用于在判断模块202判断出满足更新条件时根据监控模块201监控的计算状态计算得到新的计算结构,其中,新的计算结构的计算效率大于当前计算结构的计算效率;
切换模块204,用于将计算任务的剩余数据切换至新的计算结构进行计算。
具体而言,在实际应用中,集群计算装置2一般还包括计算结构初始化模块(图未示),用于对计算任务的计算结构进行初始化操作,计算结构初始化模块在计算结构初始化时,可以通过监控模块202监控集群的运行状态,包括但不限于数据流量、集群的CPU负载、内存负载以及磁盘状态等。计算结构初始化模块获取集群的运行状态,结合计算任务的计算特点,计算出该计算任务的初始计算结构。
计算结构初始化模块的计算方式如下:一个集群的计算任务一般会被划分为多个步骤(亦可称为operator)去顺序执行,例如划分为operator-1、operator-2、operator-3...operator-m等的m个步骤顺序执行,每一个步骤(operator)被分布到多个计算分片(亦可称为partition)上进行计算,其中,每个operator的计算分片可以相同也可以不同。该计算任务的计算结构包括:划分出的operator结构以及前后operator的partition之间的数据传输规则。初始计算结构一般为根据计算任务即将开始执行前集群的运行状态以及计算任务的特点计算得到的最佳计算结构。
本实施方式中,在计算任务执行过程中,监控模块201亦实时或者周期性地监控计算任务的当前计算结构在集群上的计算状态。监控的对象不仅可包括上述集群的运行状态,亦可包括该计算任务的计算结构中的数据状态。
举例而言,针对一个计算任务,该计算任务例如需要从kafka获取类似于“123,XYZ,1234124,2018-05-16,false”格式的数据,然后按照“,”字符对获取的数据进行切分,并将切分后的每个子字符串转化为int(整型)、String(字符串型)、long(长整型)、timestamp(时间戳型)、boolean(布尔型)等具体的数据类型,然后再输出到kafka。
计算框架对该计算任务进行解析,获取监控的集群的当前运行状态,结合计算框架对于该计算任务的解析结果,将该计算任务切分为两个operator:operator1与operator2。其中operator1负责数据的读取、切分、转化,operator2负责数据的写出。每个operator都分为16个partition并行执行(partition0~partition15),两个operator的partition之间平行传递数据,即operator1的partition0传递数据到operator2的partition0,以此类推。
在计算任务运行到某一时刻,从kafka传来的数据出现数据倾斜,operator1中的所有partition中,某几个partition的数据量暴增,而其他partition中的数据里骤减或者没有需要处理的数据,导致该计算任务的计算效率骤然降低。此时,通过监控模块201即可监控到上述异常情况。
本实施方式中,该计算任务的当前计算结构在集群上的计算状态包括:当前计算结构中的数据分布状态。判断模块201具体用于根据当前计算结构中的数据分布状态计算得到当前消耗评分,并在当前消耗评分大于预设阈值时判定满足更新条件,在当前消耗评分小于或者等于预设阈值,判定不满足更新条件。
其中,当前消耗评分用于反映在一定的资源占用情况下的计算结构的计算效率。例如,当operator1中的5个partition的数据暴增,而5个partition中的数据骤减而基本没有数据时,则意味着operator1中有5个partition对应的计算资源处于浪费状态,相应地,在operator1与operator2的partition之间的数据采用平行传输方式时,operator2中的5个partition所占用的资源也是无效利用状态,因此,整个计算结构中的16个partition中,有5个partition未被有效利用。而消费评分即可用于反映计算结构中的partition的浪费情况,浪费情况越轻,则计算效率越高,浪费情况越严重,则计算效率越低。当然,消费评分并不局限于根据partition的使用情况对计算效率进行评估。
计算结构计算模块203包括:
获取子模块(图未示),用于根据计算状态获取计算任务对应的多个预设计算结构;
评分计算子模块(图未示),用于分别计算每个预设计算结构的消耗评分;
确定子模块(图未示),用于将计算得到的消耗评分低于预设阈值的其中一个计算结构作为新的计算结构。
换言之,可以对计算结构中的每一部分进行重新计算,并尝试每一种可能的计算结构在当前情况下的消耗评分,将计算得到的消耗评分最小的一个计算结构作为新的计算结构,然不限于此,实际应用中可将计算得到的消耗评分低于预设阈值的其中一个计算结构作为新的计算结构。在实际应用中,也可预先建立并存储数据情况与计算结构的对应关系,计算结构计算模块203从预存的对应关系中查找得到与当前的数据情况匹配的计算结构。需要说明的是,计算结构计算模块203的计算方式可以与计算结构初始化模块的计算方式相同,并可沿用现有的计算结构计算方式,此处不再赘述。
值得一提的是,获取子模块具体用于:在计算任务的数据发生倾斜时,在计算结构中采用哈希数据传输策略;在计算任务的数据未发生倾斜时,在计算结构中采用平行数据传输策略。
下面举例计算结构计算模块203计算得到的一种新的计算结构,新的计算结构例如是:将operator1拆分为operator10和operator11两个operator,operator10只负责kafka数据的读取,operator11负责读取的数据的切分、转化。每个operator的partiton数量仍为16,operator10到operator11的partition之间的数据传递可以采用哈希(hash)数据传输方式,即通过一定的随机计算规则,保证operator10中的每个partition的数据都有可能传送到operator11中的每一个partition中,这样数据到达operator11时,不会再产生数据倾斜,有利于提高计算效率。
切换模块204,可以依照计算结果正确的原则,对于原来的计算结构中未处理完毕的数据进行可行的处理,例如继续采用原来的计算结构直到该部分数据计算完毕,而对于新读取的数据,则需要按照新构建的计算结构进行分发并计算,然不限于此,只要能够保证计算结果正确且不影响计算效率即可。
在实际应用中,切换模块204需要根据计算结构计算模块203计算得到的新的计算结构,对集群进行分配与回收。例如,当现有的两个operator需要被合并为一个operator时,需要对合并后被释放的计算资源进行回收,当现有的operator需要拆成多个operator时,需要分配新的计算资源来支持计算结构的变化。
本实施方式中,在完成计算结构的切换之后,可以重复调用上述模块201~204,直到该计算任务结束或者被终止。
本实施方式相对于现有技术而言,可在不影响整体计算的正确性和安全性的前提下,提高集群中单个计算任务对于集群资源的利用率,提高计算任务的执行效率。
不难发现,本实施方式为与第一实施方式相对应的装置实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明第三实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (8)
1.一种集群计算方法,其特征在于,包括:
监控计算任务的当前计算结构在集群上的计算状态,所述计算结构包括:划分出的operator结构以及前后operator的partition之间的数据传输规则;
根据所述计算状态判断是否满足所述计算任务的计算结构的更新条件,若满足所述更新条件,则根据所述计算状态计算得到新的计算结构,并将所述计算任务的剩余数据切换至所述新的计算结构进行计算;
其中,所述新的计算结构的计算效率大于所述当前计算结构的计算效率;
所述计算任务的当前计算结构在集群上的计算状态包括:所述当前计算结构中的数据分布状态;
所述根据所述计算状态判断是否满足所述计算任务的计算结构的更新条件具体包括:
根据所述当前计算结构中的数据分布状态计算得到当前消耗评分,若所述当前消耗评分大于预设阈值,则判定满足所述更新条件。
2.根据权利要求1所述的集群计算方法,其特征在于,根据所述计算状态计算得到新的计算结构,具体包括:
根据所述计算状态获取所述计算任务对应的多个预设计算结构;
分别计算每个所述预设计算结构的消耗评分,将计算得到的消耗评分低于所述预设阈值的其中一个计算结构作为新的计算结构。
3.根据权利要求2所述的集群计算方法,其特征在于,将计算得到的消耗评分最小的一个计算结构作为新的计算结构。
4.根据权利要求2所述的集群计算方法,其特征在于,所述根据所述计算状态获取所述计算任务对应的多个预设计算结构,具体包括:
在所述计算任务的数据发生倾斜时,在所述计算结构中采用哈希数据传输策略;
在所述计算任务的数据未发生倾斜时,在所述计算结构中采用平行数据传输策略。
5.一种集群计算装置,其特征在于,包括:
监控模块,用于监控计算任务的当前计算结构在集群上的计算状态,所述计算结构包括:划分出的operator结构以及前后operator的partition之间的数据传输规则;
判断模块,用于根据所述计算状态判断是否满足所述计算任务的计算结构的更新条件;
计算结构计算模块,用于在所述判断模块判断出满足所述更新条件时根据所述监控模块监控的所述计算状态计算得到新的计算结构;其中,所述新的计算结构的计算效率大于所述当前计算结构的计算效率;
切换模块,用于将所述计算任务的剩余数据切换至所述新的计算结构进行计算;
所述计算任务的当前计算结构在集群上的计算状态包括:所述当前计算结构中的数据分布状态;
所述判断模块具体用于根据所述当前计算结构中的数据分布状态计算得到当前消耗评分,并在所述当前消耗评分大于预设阈值时判定满足所述更新条件。
6.根据权利要求5所述的集群计算装置,其特征在于,所述计算结构计算模块包括:
获取子模块,用于根据所述计算状态获取所述计算任务对应的多个预设计算结构;
评分计算子模块,用于分别计算每个所述预设计算结构的消耗评分;
确定子模块,用于将计算得到的消耗评分低于所述预设阈值的其中一个计算结构作为新的计算结构。
7.根据权利要求6所述的集群计算装置,其特征在于,所述获取子模块具体用于:
在所述计算任务的数据发生倾斜时,在所述计算结构中采用哈希数据传输策略;
在所述计算任务的数据未发生倾斜时,在所述计算结构中采用平行数据传输策略。
8.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的集群计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810917843.6A CN109274711B (zh) | 2018-08-13 | 2018-08-13 | 集群计算方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810917843.6A CN109274711B (zh) | 2018-08-13 | 2018-08-13 | 集群计算方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109274711A CN109274711A (zh) | 2019-01-25 |
CN109274711B true CN109274711B (zh) | 2021-05-25 |
Family
ID=65153751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810917843.6A Active CN109274711B (zh) | 2018-08-13 | 2018-08-13 | 集群计算方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109274711B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647668A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种高可用集群内主机群体决策系统及切换方法 |
CN104572308A (zh) * | 2015-02-10 | 2015-04-29 | 飞狐信息技术(天津)有限公司 | 计算资源分配方法、分布式计算方法及装置 |
CN104915407A (zh) * | 2015-06-03 | 2015-09-16 | 华中科技大学 | 一种基于Hadoop多作业环境下的资源调度方法 |
CN106484530A (zh) * | 2016-09-05 | 2017-03-08 | 努比亚技术有限公司 | 一种分布式任务调度运维监控系统及方法 |
-
2018
- 2018-08-13 CN CN201810917843.6A patent/CN109274711B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647668A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种高可用集群内主机群体决策系统及切换方法 |
CN104572308A (zh) * | 2015-02-10 | 2015-04-29 | 飞狐信息技术(天津)有限公司 | 计算资源分配方法、分布式计算方法及装置 |
CN104915407A (zh) * | 2015-06-03 | 2015-09-16 | 华中科技大学 | 一种基于Hadoop多作业环境下的资源调度方法 |
CN106484530A (zh) * | 2016-09-05 | 2017-03-08 | 努比亚技术有限公司 | 一种分布式任务调度运维监控系统及方法 |
Non-Patent Citations (1)
Title |
---|
云环境下支持弹性伸缩的流计算研究与实现;朱汉峰;《中国优秀硕士学位论文全文数据库信息科技辑》;20160415(第04期);第四章-第五章 * |
Also Published As
Publication number | Publication date |
---|---|
CN109274711A (zh) | 2019-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102011671B1 (ko) | 이종 계산 장치 기반의 질의 처리 방법 및 장치 | |
US10831562B2 (en) | Method and system for operating a data center by reducing an amount of data to be processed | |
CN107122490B (zh) | 一种分组查询中聚合函数的数据处理方法及系统 | |
US11169994B2 (en) | Query method and query device | |
US20220067008A1 (en) | Method and apparatus for determining configuration knob of database | |
CN110659278A (zh) | 基于cpu-gpu异构架构的图数据分布式处理系统 | |
Huang et al. | DeepAdapter: A collaborative deep learning framework for the mobile web using context-aware network pruning | |
CN110058949B (zh) | 一种基于智能边缘计算的传感云低耦合控制方法 | |
CN111581234A (zh) | Rac多节点数据库查询方法、装置及系统 | |
CN110990154A (zh) | 一种大数据应用优化方法、装置及存储介质 | |
Breß et al. | A framework for cost based optimization of hybrid CPU/GPU query plans in database systems | |
US10713096B2 (en) | System and method for handling data skew at run time | |
US10558500B2 (en) | Scheduling heterogenous processors | |
CN109274711B (zh) | 集群计算方法、装置及计算机可读存储介质 | |
CN110728372B (zh) | 一种人工智能模型动态加载的集群设计方法及集群系统 | |
CN112199390A (zh) | 一种数据库中数据查询方法、装置、设备及存储介质 | |
US10439736B2 (en) | Optical switch control method, and apparatus | |
CN108984271A (zh) | 一种均衡负载的方法以及相关设备 | |
CN113485805B (zh) | 基于异构加速平台的分布式计算调整方法、装置及设备 | |
CN112506652B (zh) | 一种动态资源分区方法 | |
US20220051085A1 (en) | Runtime hyper-heterogeneous optimization for processing circuits executing inference model | |
CN112732715B (zh) | 一种数据表关联方法、设备以及存储介质 | |
CN115480930A (zh) | 一种应用服务的配置方法、装置和电子设备 | |
CN109542601B (zh) | 策略编译方法、装置、电子设备及计算机存储介质 | |
CN114860353A (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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Cluster computing methods, devices, and computer-readable storage media Granted publication date: 20210525 Pledgee: Bank of China Limited by Share Ltd. Nanjing Jiangning branch Pledgor: YI TAI FEI LIU INFORMATION TECHNOLOGY LLC Registration number: Y2024980008211 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |