CN105446979B - 数据挖掘方法和节点 - Google Patents
数据挖掘方法和节点 Download PDFInfo
- Publication number
- CN105446979B CN105446979B CN201410302143.8A CN201410302143A CN105446979B CN 105446979 B CN105446979 B CN 105446979B CN 201410302143 A CN201410302143 A CN 201410302143A CN 105446979 B CN105446979 B CN 105446979B
- Authority
- CN
- China
- Prior art keywords
- task
- node
- time
- child node
- calculating
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000012549 training Methods 0.000 claims description 60
- 230000001174 ascending effect Effects 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 8
- 239000012141 concentrate Substances 0.000 claims description 7
- 230000005012 migration Effects 0.000 claims description 7
- 238000013508 migration Methods 0.000 claims description 7
- 238000005303 weighing Methods 0.000 claims description 7
- 238000013480 data collection Methods 0.000 claims description 6
- 241000208340 Araliaceae Species 0.000 claims description 4
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 4
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 4
- 235000008434 ginseng Nutrition 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 21
- 238000007418 data mining Methods 0.000 abstract description 17
- 238000004590 computer program Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 238000005065 mining Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000009412 basement excavation Methods 0.000 description 2
- 210000002230 centromere Anatomy 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2216/00—Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
- G06F2216/03—Data mining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供一种数据挖掘方法和节点,包括:获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间为计算子节点分配对应的任务数据量,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此判断下一轮迭代任务是否要对每个计算子节点的任务数据量进行调整,并在按照调整后的任务数据量进行下一轮迭代任务,从而能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种数据挖掘方法和节点。
背景技术
大数据(big data),或称巨量资料,指的是所涉及的资料量规模巨大到无法通过常规软件工具,在合理时间内达到撷取、管理、处理、并整理的数据集合。随着云时代的来临,大数据(Big data)吸引了越来越多的关注,而如何从大数据中获取有用的信息和知识就成了业界关注的焦点。数据挖掘(Data Mining),就是一种从大量的数据中通过算法搜索隐藏于其中信息的技术,数据挖掘通常通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
在数据挖掘过程中通常需要对海量数据进行建模分析,常见的建模方法包括迭代的机器学习算法,例如线性回归、逻辑回归、神经网络和决策树,通过对数据重复执行一个学习流程,不断更新数据挖掘任务的特定参数。每次完成一轮迭代计算时,对生成的临时模型的效果进行评估,满足一定条件时结束迭代过程;否则重复执行迭代过程。
然而由于大数据具有数据量大的特点,通常达到TB(1TB=1012B)或者PB(1PB=1000TB)级别,超出民用计算机的计算能力,所以通常使用高性能计算机和分布式集群进行批量处理。即将大数据的挖掘任务在分布式集群计算环境中执行上述的迭代算法,每一轮迭代计算任务被分配到各个计算子节点,当计算子节点完成各自的计算任务时,将所有子节点的临时结果汇总,并且对得到的合并模型的效果进行评估,满足一定条件时结束迭代过程;否则将新的计算任务重新分配到各个计算子节点,重复迭代过程。
由于分布式集群各计算子节点可能出现的计算能力不一致的问题,导致计算资源不能得到充分利用,降低计算效率。因此为了提高整个挖掘系统的性能,在一种现有技术中,采用了一种负载均衡技术,在执行每一轮迭代任 务时,根据计算子节点的负载情况动态的调整各计算子节点上的任务量,比如在执行迭代任务的过程中,当发现有的计算子节点迭代任务已完成,有的未完成时,则认为已完成任务的节点为空闲节点,未完成任务的节点为过载节点,此时将过载节点的一部分任务数据转移至空闲节点。但是,上述现有技术中,由于每个计算子节点的每一轮迭代的输入的任务数据量是不变的,因此在每一轮迭任务中的负载均衡对于下一轮迭代而言是独立的,也就是说在执行下一轮迭代任务时,需要再次进行负载均衡,由于负载均衡需要在各个节点之间转移数据,这就增加了不必要的网络开销,降低系统的数据挖掘性能。
发明内容
本发明实施例提供一种数据挖掘方法和节点,能够降低网络开销,提高系统的数据挖掘性能。
第一方面,本发明实施例提供一种中心节点,应用于数据挖掘系统,所述中心节点包括:
时间获取单元,用于获取第N轮迭代任务中,每个计算子节点的预计执行时间;
分配单元,用于根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
信息获取单元,用于在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,若迭代任务未结束,则获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
第一判断单元,用于根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行所述获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡的步骤;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行所述第N+1轮迭代任务,其中,N为正整数,N的起始值为1。
结合第一方面,在第一种可能的实现方式中,当N等于1时,所述时间获取单元具体用于:
根据所述样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间;
其中,所述本数据集的分布特征参数包括:所述本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数;
每个计算子节点的计算资源包括:该计算子节点的CPU频率、内存容量中的至少一种。
结合第一方面,在第二种可能的实现方式中,当N大于1时,所述时间获取单元具体用于:
将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为所述第N轮迭代任务中该计算子节点的预计执行时间。
结合第一方面至第一方面的第二种可能的实现方式中的任意一种,在第三种可能的实现方式中,所述分配单元包括:
节点选择单元,用于确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
移出任务量确定单元,用于根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
移入任务量确定单元,用于根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
转移单元,用于按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,
所述移出任务量确定单元具体用于:
将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
所述移入任务量确定单元具体用于:
将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
结合第一方面至第一方面的第四种可能的实现方式中的任意一种,在第五种可能的实现方式中,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一判断单元具体用于:
确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
获取所述实际执行时间最长的计算子节点与所述实际执行时间最短的计算子节点之间的实际执行时间差异率;
将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
结合第一方面至第一方面的第六种可能的实现方式中的任意一种,在第七种可能的实现方式中,所述中心节点还包括:第二判断单元,具体用于:
在每个计算子节点完成所述第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于所述最大迭代数,则确定所述迭代任务未结束;若N等于所述最大迭代数,则确定所述迭代任务结束;
或者,
在每个计算子节点完成所述第N轮迭代任务后,判断所述第N轮迭代的输出结果是否满足收敛条件;若不满足所述收敛条件,则确定所述迭代任务未结束,若满足所述收敛条件,则确定所述迭代任务结束。
第二方面,本发明实施例提供另一种中心节点,应用于数据挖掘系统,所述中心节点包括:
时间获取单元,用于根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间;
第一判断单元,用于根据每个计算子节点的预计执行时间判断所述第N轮迭代任务是否需要进行负载均衡;
分配单元,用于当需要进行负载均衡时,根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;当不需要进行负载均衡时,不为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
信息获取单元,用于在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
更新单元,用于根据每个计算子节点的执行情况信息更新所述时间学习模型的训练参数,若所述迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行所述根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息更新所述时间学习模型的步骤。
结合第二方面,在第一种可能的实现方式中,所述时间学习模型是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述时间学习模型包括:
计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史数据任务量+C;
其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,所述计算子节点i在第N-1轮迭代任务中的历史数据任务量为所述计算子节点i在第N-1轮迭代任务中的分配的任务数据量。
结合第二方面至第二方面的第二种可能的实现方式中的任意一种,在第三种可能的实现方式中,所述第一判断单元具体用于:
确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
获取所述预计执行时间最长的计算子节点与所述预计执行时间最短的计算子节点之间的预计执行时间差异率;
将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
结合第二方面至第二方面的第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,所述分配单元包括:
节点选择单元,用于确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
移出任务量确定单元,用于根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
移入任务量确定单元,用于根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
转移单元,用于按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直 至所有过载节点需要移出的任务数据都迁移完成。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,
所述移出任务量确定单元具体用于:
将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
所述移入任务量确定单元具体用于:
将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
结合第二方面至第二方面的第五种可能的实现方式中的任意一种,在第六种可能的实现方式中,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
结合第二方面的第一种可能的实现方式,在第七种可能的实现方式中,所述更新单元具体用于:
根据每个计算子节点的执行情况信息更新所述时间学习模型的执行时间训练参数、计算资源使用率训练参数、历史任务数据量训练参数中的至少一个参数。
结合第二方面至第二方面的第七种可能的实现方式中的任意一种,在第八种可能的实现方式中,所述中心节点还包括:第二判断单元,具体用于:
在每个计算子节点完成所述第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于所述最大迭代数,则确定所述迭代任务未结束;若N等于所述最大迭代数,则确定所述迭代任务结束;
或者,
在每个计算子节点完成所述第N轮迭代任务后,判断所述第N轮迭代的 输出结果是否满足收敛条件;若不满足所述收敛条件,则确定所述迭代任务未结束,若满足所述收敛条件,则确定所述迭代任务结束。
第三方面,提供一种数据挖掘系统,所述系统包括:
上述第一方面至第二方面的第八种可能的实现方式中任一所述的中心节点,以及至少两个计算子节点。
第四方面,提供一种数据挖掘方法,所述方法包括:
获取第N轮迭代任务中,每个计算子节点的预计执行时间;
根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,若迭代任务未结束,则获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行所述获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡的步骤;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行所述第N+1轮迭代任务,其中,N为正整数,N的起始值为1。
结合第四方面,在第一种可能的实现方式中,当N等于1时,所述获取第N轮迭代任务中,每个计算子节点的预计执行时间包括:
根据所述样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间;
其中,所述本数据集的分布特征参数包括:所述本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数;
每个计算子节点的计算资源包括:该计算子节点的CPU频率、内存容量中的至少一种。
结合第四方面,在第二种可能的实现方式中,当N大于1时,所述获取第N轮迭代任务中,每个计算子节点的预计执行时间包括:
将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为所述第N 轮迭代任务中该计算子节点的预计执行时间。
结合第四方面至第四方面的第二种可能的实现方式中的任意一种,在第三种可能的实现方式中,所述根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据包括:
确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量包括:
将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
所述根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量包括:
将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
结合第四方面至第四方面的第四种可能的实现方式中的任意一种,在第五种可能的实现方式中,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
第四方面的第五种可能的实现方式,在第六种可能的实现方式中,所述根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡包括:
确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
获取所述实际执行时间最长的计算子节点与所述实际执行时间最短的计算子节点之间的实际执行时间差异率;
将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
结合第四方面至第四方面的第六种可能的实现方式中的任意一种,在第七种可能的实现方式中,迭代任务是否结束的判断方法包括:
在每个计算子节点完成所述第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于所述最大迭代数,则确定所述迭代任务未结束;若N等于所述最大迭代数,则确定所述迭代任务结束;
或者,
在每个计算子节点完成所述第N轮迭代任务后,判断所述第N轮迭代的输出结果是否满足收敛条件;若不满足所述收敛条件,则确定所述迭代任务未结束,若满足所述收敛条件,则确定所述迭代任务结束。
第五方面,提供一种数据挖掘方法,所述方法包括:
根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行 时间;
根据每个计算子节点的预计执行时间判断所述第N轮迭代任务是否需要进行负载均衡;
若需要进行负载均衡,则根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;若不需要进行负载均衡,不为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
根据每个计算子节点的执行情况信息更新所述时间学习模型的训练参数,若所述迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行所述根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息更新所述时间学习模型的步骤;其中,N为正整数,N的起始值为1。
结合第五方面,在第一种可能的实现方式中,所述时间学习模型是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
结合第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述时间学习模型包括:
计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史数据任务量+C;
其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,所述计算子节点i在第N-1轮迭代任务中的历史数据任务量为所述计算子节点i在第N-1轮迭代任务中的分配的任务数据量。
结合第五方面至第五方面的第二种可能的实现方式中的任意一种,在第三种可能的实现方式中,所述根据每个计算子节点的预计执行时间判断所述第N轮迭代任务是否需要进行负载均衡包括:
确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
获取所述预计执行时间最长的计算子节点与所述预计执行时间最短的计算子节点之间的预计执行时间差异率;
将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
结合第五方面至第五方面的第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,所述根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据包括:
确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
结合第五方面的第四种可能的实现方式,在第五种可能的实现方式中,所述根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量包括:
将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
所述根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量包括:
将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
结合第五方面至第五方面的第五种可能的实现方式中的任意一种,在第六种可能的实现方式中,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
结合第五方面的第二种可能的实现方式,在第七种可能的实现方式中,所述根据每个计算子节点的执行情况信息更新所述时间学习模型的训练参数包括:
根据每个计算子节点的执行情况信息更新所述时间学习模型的执行时间训练参数、计算资源使用率训练参数、历史任务数据量训练参数中的至少一个参数。
结合第五方面至第五方面的第其中可能的实现方式中的任意一种,在第八种可能的实现方式中,迭代任务是否结束的判断方法包括:
在每个计算子节点完成所述第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于所述最大迭代数,则确定所述迭代任务未结束;若N等于所述最大迭代数,则确定所述迭代任务结束;
或者,
在每个计算子节点完成所述第N轮迭代任务后,判断所述第N轮迭代的输出结果是否满足收敛条件;若不满足所述收敛条件,则确定所述迭代任务未结束,若满足所述收敛条件,则确定所述迭代任务结束。
本发明实施例提供一种数据挖掘方法和节点,通过获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间为计算子节点分配对应的任务数据量,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此判断下一轮迭代任务是否要对每个计算子节点的任务数据量进行调整,并在按照调整后的任务数据量进行下一轮迭代任务;或者,根据时间学习模型获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间判断判断本轮迭代任务是否要进行负载均衡,若要进行负载均衡则对每个计算子节点分配的任务数据量进行调整,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此来更新时间学习模型的训练参数,并在下一轮迭代时重复上述过程。相比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种中心节点的结构示意图;
图2为本发明实施例提供的一种中心节点的分配单元的结构示意图;
图3为本发明实施例提供的一种中心节点的另一结构示意图;
图4为本发明实施例提供的另一种中心节点的结构示意图;
图5为本发明实施例提供的另一种中心节点的分配单元的结构示意图;
图6为本发明实施例提供的另一种中心节点的另一结构示意图;
图7为本发明实施例提供的又一种中心节点的结构示意图;
图8为本发明实施例提供的又一种中心节点的结构示意图;
图9为本发明实施例提供的一种数据挖掘系统的结构示意图;
图10为本发明实施例提供的一种数据挖掘方法的流程示意图;
图11为本发明实施例提供的另一种数据挖掘方法的流程示意图;
图12为本发明实施例提供的又一种数据挖掘方法的流程示意图;
图13为本发明实施例提供的迭代任务的执行流程示意图;
图14为本发明实施例提供的又一种数据挖掘方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种中心节点1,可应用于数据挖掘系统,如图1所示,中心节点1包括:
时间获取单元11,用于获取第N轮迭代任务中,每个计算子节点的预计执行时间;
分配单元12,用于根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
信息获取单元13,用于在每个计算子节点根据分配的任务数据完成第N轮迭代任务后,若迭代任务未结束,则获取第N轮迭代任务中每个计算子节点的执行情况信息;
第一判断单元14,用于根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行获取第N轮迭代任务中,每个计算子节点的预计执行时间至根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡的步骤;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行第N+1轮迭代任务,其中,N为正整数,N的起始值为1。
可选的,当N等于1时,时间获取单元11可以具体用于:
根据样本数据集的分布特征参数和每个计算子节点的计算资源获取每个 计算子节点的预计执行时间;
其中,本数据集的分布特征参数包括:本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数;
每个计算子节点的计算资源包括:该计算子节点的CPU频率、内存容量中的至少一种。
可选的,当N大于1时,时间获取单元11可以具体用于:
将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为第N轮迭代任务中该计算子节点的预计执行时间。
可选的,如图2所示,分配单元12可以包括:
节点选择单元121,用于确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
移出任务量确定单元122,用于根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
移入任务量确定单元123,用于根据每个空闲节点的预计执行时间以及标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
转移单元124,用于按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
可选的,移出任务量确定单元122可以具体用于:
将每个过载节点的预计执行时间与标准执行时间之差除以标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
移入任务量确定单元123可以具体用于:
将每个空闲节点的预计执行时间与标准执行时间之差的绝对值除以标准 执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
可选的,第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
可选的,第一判断单元124可以具体用于:
确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
获取实际执行时间最长的计算子节点与实际执行时间最短的计算子节点之间的实际执行时间差异率;
将时间差异率与预设差异率阈值进行比较,若时间差异率小于或等于预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若时间差异率大于预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
可选的,如图3所示,中心节点1还可以包括:第二判断单元125,可以具体用于:
在每个计算子节点完成第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于最大迭代数,则确定迭代任务未结束;若N等于最大迭代数,则确定迭代任务结束;
或者,
在每个计算子节点完成第N轮迭代任务后,判断第N轮迭代的输出结果是否满足收敛条件;若不满足收敛条件,则确定迭代任务未结束,若满足收敛条件,则确定迭代任务结束。
本发明实施例提供一种中心节点,通过获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间为计算子节点分配对应的任务数据量,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此判断下一轮迭代任务是否要对每个计算子节点的任务数据量进行调整。相比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且 能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
本发明实施例提供另一种中心节点2,可应用于数据挖掘系统,如图4所示,中心节点2包括:
时间获取单元21,用于根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间;
第一判断单元22,用于根据每个计算子节点的预计执行时间判断第N轮迭代任务是否需要进行负载均衡;
分配单元23,用于当需要进行负载均衡时,根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;当不需要进行负载均衡时,不为每个计算子节点重分配任务数据;其中,任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
信息获取单元24,用于在每个计算子节点根据分配的任务数据完成第N轮迭代任务后,获取第N轮迭代任务中每个计算子节点的执行情况信息;
更新单元25,用于根据每个计算子节点的执行情况信息更新时间学习模型的训练参数,若迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间至根据每个计算子节点的执行情况信息更新时间学习模型的步骤。
可选的,时间学习模型可以是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
可选的,时间学习模型可以包括:
计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史任务数据量+C;
其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,计算子节点i在第N-1轮迭代任务中的历 史任务数据量为计算子节点i在第N-1轮迭代任务中的分配的任务数据量。
可选的,第一判断单元可以22具体用于:
确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
获取预计执行时间最长的计算子节点与预计执行时间最短的计算子节点之间的预计执行时间差异率;
将时间差异率与预设差异率阈值进行比较,若时间差异率小于或等于预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若时间差异率大于预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
可选的,如图5所示,分配单元23可以包括:
节点选择单元231,用于确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
移出任务量确定单元232,用于根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
移入任务量确定单元233,用于根据每个空闲节点的预计执行时间以及标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
转移单元234,用于按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
可选的,
移出任务量确定单元232可以具体用于:
将每个过载节点的预计执行时间与标准执行时间之差除以标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
移入任务量确定单元233可以具体用于:
将每个空闲节点的预计执行时间与标准执行时间之差的绝对值除以标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
可选的,第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
可选的,更新单元具体25可以具体用于:
根据每个计算子节点的执行情况信息更新时间学习模型的执行时间训练参数、计算资源使用率训练参数、历史任务数据量训练参数中的至少一个参数。
可选的,如图6所示,中心节点2还可以包括:第二判断单元26,可以具体用于:
在每个计算子节点完成第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于最大迭代数,则确定迭代任务未结束;若N等于最大迭代数,则确定迭代任务结束;
或者,
在每个计算子节点完成第N轮迭代任务后,判断第N轮迭代的输出结果是否满足收敛条件;若不满足收敛条件,则确定迭代任务未结束,若满足收敛条件,则确定迭代任务结束。
本发明实施例提供一种中心节点,通过根据时间学习模型获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间判断判断本轮迭代任务是否要进行负载均衡,若要进行负载均衡则对每个计算子节点分配的任务数据量进行调整,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此来更新时间学习模型的训练参数,并在下一轮迭代时重复上述过程。相比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点 的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
本发明实施例提供一种中心节点3,可应用于数据挖掘系统,如图7所示,中心节点3包括:处理器31、存储器32、输入/输出接口33,处理器31、存储器32、输入/输出接口33通过总线34连接;其中,输入/输出接口33用于和其他网元交互,存储器32用于存储计算机程序321,处理器31用于执行计算机程序321用于:
获取第N轮迭代任务中,每个计算子节点的预计执行时间;
根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
在每个计算子节点根据分配的任务数据完成第N轮迭代任务后,若迭代任务未结束,则获取第N轮迭代任务中每个计算子节点的执行情况信息;
根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行获取第N轮迭代任务中,每个计算子节点的预计执行时间至根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡的步骤;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行第N+1轮迭代任务,其中,N为正整数,N的起始值为1。
可选的,当N等于1时,处理器31用于执行计算机程序321可以具体用于:
根据样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间;
其中,本数据集的分布特征参数包括:本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数;
每个计算子节点的计算资源包括:该计算子节点的CPU频率、内存容量中的至少一种。
可选的,当N大于1时,处理器31用于执行计算机程序321可以具体用于:
将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为第N轮迭代任务中该计算子节点的预计执行时间。
可选的,处理器31用于执行计算机程序321可以具体用于:
确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
根据每个空闲节点的预计执行时间以及标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
可选的,处理器31用于执行计算机程序321可以用于:
将每个过载节点的预计执行时间与标准执行时间之差除以标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
处理器31用于执行计算机程序321可以用于:
将每个空闲节点的预计执行时间与标准执行时间之差的绝对值除以标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
可选的,第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
可选的,处理器31用于执行计算机程序321可以具体用于:
确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算 子节点,和实际执行时间最短的计算子节点;
获取实际执行时间最长的计算子节点与实际执行时间最短的计算子节点之间的实际执行时间差异率;
将时间差异率与预设差异率阈值进行比较,若时间差异率小于或等于预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若时间差异率大于预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
可选的,处理器31用于执行计算机程序321还可以具体用于:
在每个计算子节点完成第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于最大迭代数,则确定迭代任务未结束;若N等于最大迭代数,则确定迭代任务结束;
或者,
在每个计算子节点完成第N轮迭代任务后,判断第N轮迭代的输出结果是否满足收敛条件;若不满足收敛条件,则确定迭代任务未结束,若满足收敛条件,则确定迭代任务结束。
本发明实施例提供一种中心节点,通过获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间为计算子节点分配对应的任务数据量,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此判断下一轮迭代任务是否要对每个计算子节点的任务数据量进行调整。相比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
本发明实施例提供一种中心节点4,可应用于数据挖掘系统,如图8所示,中心节点4包括:处理器41、存储器42、输入/输出接口43,处理器41、存储器42、输入/输出接口43通过总线44连接;其中,输入/输出接口43用于和其他网元交互,存储器42用于存储计算机程序421,处理器41用于执行计算机程序421用于:
根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间;
根据每个计算子节点的预计执行时间判断第N轮迭代任务是否需要进行负载均衡;
若需要进行负载均衡,根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;若不需要进行负载均衡,不为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
在每个计算子节点根据分配的任务数据完成第N轮迭代任务后,获取第N轮迭代任务中每个计算子节点的执行情况信息;
根据每个计算子节点的执行情况信息更新时间学习模型的训练参数,若迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间至根据每个计算子节点的执行情况信息更新时间学习模型的步骤。
可选的,时间学习模型可以是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
可选的,时间学习模型可以包括:
计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史任务数据量+C;
其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,计算子节点i在第N-1轮迭代任务中的历史任务数据量为计算子节点i在第N-1轮迭代任务中的分配的任务数据量。
可选的,处理器41用于执行计算机程序421可以具体用于:
确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
获取预计执行时间最长的计算子节点与预计执行时间最短的计算子节点之间的预计执行时间差异率;
将时间差异率与预设差异率阈值进行比较,若时间差异率小于或等于预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若时间差异率 大于预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
可选的,处理器41用于执行计算机程序421可以具体用于:
确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
根据每个空闲节点的预计执行时间以及标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
可选的,处理器41用于执行计算机程序421可以具体用于:
将每个过载节点的预计执行时间与标准执行时间之差除以标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
处理器41用于执行计算机程序421可以具体用于:
将每个空闲节点的预计执行时间与标准执行时间之差的绝对值除以标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
可选的,第N轮迭代任务中每个计算子节点的执行情况信息可以包括:每个计算子节点在第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,任务量为在第N轮迭代任务中的子数据块数量,计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
可选的,处理器41用于执行计算机程序421可以具体用于:
根据每个计算子节点的执行情况信息更新时间学习模型的执行时间训练参数、计算资源使用率训练参数、历史任务数据量训练参数中的至少一个参数。
可选的,处理器41用于执行计算机程序421还可以具体用于:
在每个计算子节点完成第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于最大迭代数,则确定迭代任务未结束;若N等于最大迭代数,则确定迭代任务结束;
或者,
在每个计算子节点完成第N轮迭代任务后,判断第N轮迭代的输出结果是否满足收敛条件;若不满足收敛条件,则确定迭代任务未结束,若满足收敛条件,则确定迭代任务结束。
本发明实施例提供一种中心节点,通过根据时间学习模型获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间判断判断本轮迭代任务是否要进行负载均衡,若要进行负载均衡则对每个计算子节点分配的任务数据量进行调整,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此来更新时间学习模型的训练参数,并在下一轮迭代时重复上述过程。相比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
本发明实施例提供一种数据挖掘系统,如图9所示,所述系统包括:
前述实施例所述的任一种中心节点,以及至少两个计算子节点;其中每个计算子节点都设置有存储器。
需要说明的是,本实施例提供的上述任一中心节点以及数据挖掘系统可以用于实现下文所述各方法实施例,本实施例中各个单元的工作流程和工作原理可以参见下各方法实施例中的描述。
本发明实施例提供一种数据挖掘方法,如图10所示,所述方法包括:
S101、获取第N轮迭代任务中,每个计算子节点的预计执行时间。
S102、根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,任务数据为已获取的待挖掘的样本数据集的部分或全部数据。
S103、在每个计算子节点根据分配的任务数据完成第N轮迭代任务后,若迭代任务未结束,则获取第N轮迭代任务中每个计算子节点的执行情况信息。
S104、根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行S101~S104;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行第N+1轮迭代任务,其中,N为正整数,N的起始值为1。
本实施例还提供另一种数据挖掘方法,如图11所示,包括:
S201、根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间。
S202、根据每个计算子节点的预计执行时间判断第N轮迭代任务是否需要进行负载均衡。
S203、若需要进行负载均衡,则根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;若不需要进行负载均衡,则不为每个计算子节点重分配任务数据;其中,任务数据为已获取的待挖掘的样本数据集的部分或全部数据。
S204、在每个计算子节点根据分配的任务数据完成第N轮迭代任务后,获取第N轮迭代任务中每个计算子节点的执行情况信息。
S205、根据每个计算子节点的执行情况信息更新时间学习模型的训练参数,若迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行S201~S205。
本发明实施例提供一种数据挖掘方法,通过获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间为计算子节点分配对应的任务数据量,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此判断下一轮迭代任务是否要对每个计算子节点的任务数据量进行调整,并在按照调整后的任务数据量进行下一轮迭代任务;或者,根据时间学习模型获取本轮迭代任务中每个计算子节点的预计执行时间,并 根据预计执行时间判断判断本轮迭代任务是否要进行负载均衡,若要进行负载均衡则对每个计算子节点分配的任务数据量进行调整,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此来更新时间学习模型的训练参数,并在下一轮迭代时重复上述过程。相比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
为了使本领域技术人员能够更清楚地理解本发明实施例提供的技术方案,下面通过具体的实施例,对本发明的实施例提供的数据挖掘方法进行详细说明,如图12所示,该方法包括:
S301、获取的待挖掘的样本数据集。
例如,从外部数据源导入数据集作为样本数据集到数据挖掘系统(以下简称:挖掘系统)中,常见外部数据源可以是数据仓库、数据库、开放式数据库连接(Open DatabaseConnectivity,ODBC)以及保存在文件系统上的文件,该导入的数据集可以是由海量未处理数据构成的,可以采用列表的形式。
在获取样本数据集后,首先将样本数据集按照预设规则划分成多个子数据块,作为初始分配到挖掘系统中的各个计算子节点上的任务数据,由各个计算子节点储存。其中,预设规则可以为:将样本数据集平均划分成数据量相同的数据块分配给各个计算子节点,例如样本数据集有1000万行数据,要分给10个计算子节点,则可以给每个计算子节点分配100万行数据;或者,可以根据各个计算子节点的计算资源(CPU频率、内存容量等)进行划分,比如可以按照计算子节点内存的容量按比例划分。而后,将划分好的任务数据存储至对应的计算子节点的存储设备上,存储设备可以是硬盘,也可以是内存,当存储在硬盘的情况下,当挖掘任务开始时需要将要处理的数据读到内存中进行挖掘过程。
S302、获取第N轮迭代任务中,每个计算子节点的预计执行时间。其中,N为正整数,N的起始值为1。
当N等于1时,即开始挖掘任务的第1轮迭代任务时,由于是首次执行轮迭代任务,所以需要预估本轮的执行时间,所以可以采用以下方式获取第 1轮的预计执行时间:
根据样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间。其中,样本数据集的分布特征参数可以包括:本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数。比如,以列表形式的样本数据集为例,同一列下的取值就属于相同字段下的取值,获取该列中所有取值的平均值、方差、取值范围、不同取值的个数就得到了样本数据集该字段数据的分布特征参数,同理可以获得整个样本数据集的分布特征参数。而每个计算子节点的计算资源可以包括:计算子节点的CPU频率、内存容量中的至少一种。
示例性的,可以利用不同取值的个数乘以一个预设算法的经验系数(可以是算法的复杂度)再除以计算子节点的CPU的运算频率得到该计算子节点的预计执行时间。其中,上述预设算法可以根据实际需要选取,本实施例不做限定,并且上述计算方法也仅仅是举例,包括但不限于此。
当N大于1时,即执行挖掘任务的非首轮迭代任务时,可以将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为第N轮迭代任务中该计算子节点的预计执行时间。
另外,除了上述样本数据集的分布特征参数和每个计算子节点的计算资源之外,还可以考虑第N-1轮迭代任务中每个计算子节点的任务数据量、计算子节点的硬件配置、网络负载等参数中的一种或多种来获取预计执行时间。
S303、根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据。
具体的,包括:
确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
根据每个空闲节点的预计执行时间以及标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
其中,获取每个过载节点需要移出的任务数据量可以通过:
将每个过载节点的预计执行时间与标准执行时间之差除以标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量。
获取每个空闲节点的可移入的任务数据量可以包括:
将每个空闲节点的预计执行时间与标准执行时间之差的绝对值除以标准执行时间,得到该过空闲点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
示例性的,假设挖掘系统中有8个计算子节点,分别为节点1、节点2节点3、节点4、节点5、节点6、节点7、节点8。假设标准执行时间为100s,节点1-8的预计执行时间为如表1所示,节点1-8上已存储的数据任务量如表2所示:
表1
表2
根据表1中的各计算子节点的预计执行时间可以确定,节点1、节点2、节点4为过载节点、节点6、节点7、节点8为空闲节点。
可以算出,节点1的任务迁移比例=(130-100)÷100×100%=30%,再利用30%×1000万行可得节点1需要移出的任务数据量为300万行,同理可得节点2、节点4需要移出的任务数据量分别为180万行和85万行,节点6的可移入任务比例=(100-60)÷100×100%=40%,再利用40%×1000万行可得节点1可移入的任务数据量为400万行,同理可得,节点7、节点8可移入的任务数据量分别为120万行和95万行。
而后,进行转移数据,由表1可以看出节点1、节点2、节点4、节点6、节点7、节点8的预计执行时间的排序由高到低依次为:节点1、节点2、节点4、节点8、节点7、节点6。所以,在转移数据时,先将节点1需要移出的任务数据优先移入至节点6,根据上述计算可知,在将节点1需要移出的任务数据全部移入节点6后,节点6还有剩余空间,而后再将节点2需要移出的任务数据移入至节点6,当节点6可移入的任务数据量用完时,再将节点2需要移出的任务数据移入至节点7,以此类推,直至节点1、节点2、节点4中需要移出的任务数据都迁移完成。
S304、由各个计算子节根据分配的任务数据点执行第N轮迭代任务。
示例性的,迭代任务可以利用Mahout平台(Apache软件基金会的一个可扩展的机器学习和数据挖掘平台),其架构基于MapReduce框架,其计算流程包括Map(映射)和Reduce(化简)两个步骤,其中,执行Map是根据数据获得基于键值对的中间结果,执行Reduce是将键值对合并汇总生成输出结果。如图13所示,基于MapReduce的Mahout在执行迭代任务的过程中,重复执行Map和Reduce两个步骤。每一次MapReduce任务执行完,输出其结果,再进行生成模型的效果检验,如果满足迭代任务的要求,则生成的模型为最终结果(可以理解为模型参数被调整到最佳的数值);否则继续下一轮迭代,重复执行Map和Reduce步骤。
S305、在第N轮迭代任务完成后,判断迭代任务是否结束,若迭代任务未结束则执行S306;否则,执行S308。
示例性的,迭代任务是否结束的判断方法可以包括:
在每个计算子节点完成第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于最大迭代数,则确定迭代任务未结束;若N等于最大迭代数,则确定迭代任务结束;
比如,最大迭代数被设置为200,若N小于200,则迭代任务未结束,若N等于200,则确定迭代任务结束。
或者,
在每个计算子节点完成第N轮迭代任务后,判断第N轮迭代的输出结果是否满足收敛条件(比如,迭代所用的模型的参数是否已被调整为最佳参数);若不满足收敛条件,则确定迭代任务未结束,若满足收敛条件,则确定迭代任务结束。
S306、获取第N轮迭代任务中每个计算子节点的执行情况信息。
每个计算子节点的执行情况信息可以为:每个计算子节点在第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种。其中,计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
S307、根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡。若需要进行负载均衡,则N的值加1后重复执行S302-S307;若不需要进行负载均衡,则每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据直接执行第N+1轮迭代任务。
示例性的,可以首先确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
获取实际执行时间最长的计算子节点与实际执行时间最短的计算子节点之间的实际执行时间差异率;
将时间差异率与预设差异率阈值进行比较,若时间差异率小于或等于预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若时间差异率大于预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
比如,差异率阈值设置为10%,假设第N轮迭代任务中,实际执行时间最长的计算子节点的实际执行时间为120s,实际执行时间最短的计算子节点的实际执行时间为100s,则这两个计算子节点实际执行时间的差异率为20%,大于差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡;又例如,第N轮迭代任务中,实际执行时间最长的计算子节点的实际执行时间为105s, 实际执行时间最短的计算子节点的实际执行时间为100s,则这两个计算子节点实际执行时间的差异率为5%,小于差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡。
S308、结束数据挖掘任务。
在本发明实施例的提供的数据挖掘方法的另一种实现方式中,如图14所示,该方法包括:
S401、获取的待挖掘的样本数据集(具体步骤与S301完全相同,可参照S301,此处不再赘述)。
S402、根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间。
示例性的,时间学习模型可以是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
例如,该模型可以包括:
计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史数据任务量+C;
其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,计算子节点i在第N-1轮迭代任务中的历史数据任务量为计算子节点i在第N-1轮迭代任务中的分配的任务数据量,计算子节点i为数据挖掘系统中的任意一个计算子节点。
比如,假设将a设置为0.95,b设置为10,c设置为0(可以理解为不考虑历史任务数据量训练参数),C设置为0.5,假设第N-1轮迭代任务中计算子节点i的实际执行时间为100s,计算资源使用率取计算子节点i的CPU使用率,并假设为50%,则计算子节点i在第N轮迭代任务中的预计执行时间=0.95×100+10×50%+0.5=100.5s。
另外,除了上述实际执行时间、计算资源使用率、历史任务数据量之外,还可以考虑第N-1轮迭代任务中每个计算子节点的任务数据量、计算子节点的硬件配置、网络负载等参数中的一种或多种来获取预计执行时间。
S403、根据每个计算子节点的预计执行时间判断第N轮迭代任务是否需要进行负载均衡。若要进行负载均衡,则执行S404;否则,直接执行S405。
具体的,可以包括:
确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
获取预计执行时间最长的计算子节点与预计执行时间最短的计算子节点之间的预计执行时间差异率;
将时间差异率与预设差异率阈值进行比较,若时间差异率小于或等于预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若时间差异率大于预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
比如,差异率阈值设置为10%,假设第N轮迭代任务中,预计执行时间最长的计算子节点的预计执行时间为120s,预计执行时间最短的计算子节点的预计执行时间为95s,则这两个计算子节点预计执行时间的差异率为26.3%,大于差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡;又例如,第N轮迭代任务中,预计执行时间最长的计算子节点的预计执行时间为107s,预计执行时间最短的计算子节点的预计执行时间为100s,则这两个计算子节点预计执行时间的差异率为7%,小于差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡。
S404、根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据(具体步骤与S303完全相同,可参照S303,此处不再赘述)。
S405、由各个计算子节根据分配的任务数据点执行第N轮迭代任务(具体步骤与S304完全相同,可参照S304,此处不再赘述)。
S406、获取第N轮迭代任务中每个计算子节点的执行情况信息(具体步骤与S306完全相同,可参照S306,此处不再赘述)。
S407、根据每个计算子节点的执行情况信息更新时间学习模型的训练参数。
具体的,可以根据每个计算子节点的执行情况信息更新时间学习模型的执行时间训练参数、计算资源使用率训练参数、历史任务数据量训练参数中的至少一个参数。
S408、在第N轮迭代任务完成后,判断迭代任务是否结束,若迭代任务 未结束则执行利用更新后的时间学习模型重复执行S402-S408;否则,执行S409。
S409、结束数据挖掘任务。
本发明实施例提供一种数据挖掘方法,通过获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间为计算子节点分配对应的任务数据量,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此判断下一轮迭代任务是否要对每个计算子节点的任务数据量进行调整,并在按照调整后的任务数据量进行下一轮迭代任务;或者,根据时间学习模型获取本轮迭代任务中每个计算子节点的预计执行时间,并根据预计执行时间判断判断本轮迭代任务是否要进行负载均衡,若要进行负载均衡则对每个计算子节点分配的任务数据量进行调整,在本轮迭代任务执行后,收集本轮迭代任务中每个计算子节点的执行情况信息,并以此来更新时间学习模型的训练参数,并在下一轮迭代时重复上述过程。相比现有技术在每轮迭代任务过程中重复的执行负载均衡而言,本发明实施例能够根据每个计算子节点的能力分配相应的任务数据量,并且能够根据上一轮的执行情况对本轮任务中每个计算子节点的任务数据量做出调整,从而能够避免有些不必要的负载均衡过程,降低网络开销,提高系统的数据挖掘性能。
在本发明所提供的几个实施例中,应该理解到,所揭露的节点、系统和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单 元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (26)
1.一种中心节点,应用于数据挖掘系统,其特征在于,所述中心节点包括:
时间获取单元,用于获取第N轮迭代任务中,每个计算子节点的预计执行时间;
分配单元,用于根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
信息获取单元,用于在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,若迭代任务未结束,则获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
第一判断单元,用于根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行所述获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡的步骤;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行所述第N+1轮迭代任务,其中,N为正整数,N的起始值为1;
其中,所述分配单元包括:
节点选择单元,用于确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
移出任务量确定单元,用于根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
移入任务量确定单元,用于根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
转移单元,用于按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
2.根据权利要求1所述的中心节点,其特征在于,当N等于1时,所述时间获取单元具体用于:
根据所述样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间;
其中,所述本数据集的分布特征参数包括:所述本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数;
每个计算子节点的计算资源包括:该计算子节点的CPU频率、内存容量中的至少一种。
3.根据权利要求1所述的中心节点,其特征在于,当N大于1时,所述时间获取单元具体用于:
将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为所述第N轮迭代任务中该计算子节点的预计执行时间。
4.根据权利要求1-3中任一项所述的中心节点,其特征在于,
所述移出任务量确定单元具体用于:
将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
所述移入任务量确定单元具体用于:
将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该空闲节点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
5.根据权利要求1-3任一所述的中心节点,其特征在于,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
6.根据权利要求5所述的中心节点,其特征在于,所述第一判断单元具体用于:
确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
获取所述实际执行时间最长的计算子节点与所述实际执行时间最短的计算子节点之间的实际执行时间差异率;
将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
7.根据权利要求1-3任一所述的中心节点,其特征在于,所述中心节点还包括:第二判断单元,具体用于:
在每个计算子节点完成所述第N轮迭代任务后,判断N是否等于预设的最大迭代数,若N小于所述最大迭代数,则确定所述迭代任务未结束;若N等于所述最大迭代数,则确定所述迭代任务结束;
或者,
在每个计算子节点完成所述第N轮迭代任务后,判断所述第N轮迭代的输出结果是否满足收敛条件;若不满足所述收敛条件,则确定所述迭代任务未结束,若满足所述收敛条件,则确定所述迭代任务结束。
8.一种中心节点,应用于数据挖掘系统,其特征在于,所述中心节点包括:
时间获取单元,用于根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间;
第一判断单元,用于根据每个计算子节点的预计执行时间判断所述第N轮迭代任务是否需要进行负载均衡;
分配单元,用于当需要进行负载均衡时,根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;当不需要进行负载均衡时,不为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
信息获取单元,用于在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
更新单元,用于根据每个计算子节点的执行情况信息更新所述时间学习模型的训练参数,若所述迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行所述根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息更新所述时间学习模型的步骤;
其中,所述分配单元包括:
节点选择单元,用于确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
移出任务量确定单元,用于根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
移入任务量确定单元,用于根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
转移单元,用于按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
9.根据权利要求8所述的中心节点,其特征在于,所述时间学习模型是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
10.根据权利要求9所述的中心节点,其特征在于,所述时间学习模型包括:
计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史数据任务量+C;
其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,所述计算子节点i在第N-1轮迭代任务中的历史数据任务量为所述计算子节点i在第N-1轮迭代任务中的分配的任务数据量。
11.根据权利要求8-10任一所述的中心节点,其特征在于,所述第一判断单元具体用于:
确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
获取所述预计执行时间最长的计算子节点与所述预计执行时间最短的计算子节点之间的预计执行时间差异率;
将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
12.根据权利要求8-10中任一项所述的中心节点,其特征在于,
所述移出任务量确定单元具体用于:
将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
所述移入任务量确定单元具体用于:
将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该空闲节点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
13.根据权利要求8-10任一所述的中心节点,其特征在于,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
14.根据权利要求10所述的中心节点,其特征在于,所述更新单元具体用于:
根据每个计算子节点的执行情况信息更新所述时间学习模型的所述执行时间训练参数、所述计算资源使用率训练参数、所述历史任务数据量训练参数中的至少一个参数。
15.一种数据挖掘方法,其特征在于,所述方法包括:
获取第N轮迭代任务中,每个计算子节点的预计执行时间;
根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,若迭代任务未结束,则获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡,若需要进行负载均衡,则将N的值加1后重复执行所述获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡的步骤;若不需要进行负载均衡,则使每个计算子节点按照第N轮迭代任务中为该计算子节点分配的任务数据执行所述第N+1轮迭代任务,其中,N为正整数,N的起始值为1;
其中,所述根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据包括:
确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
16.根据权利要求15所述的方法,其特征在于,当N等于1时,所述获取第N轮迭代任务中,每个计算子节点的预计执行时间包括:
根据所述样本数据集的分布特征参数和每个计算子节点的计算资源获取每个计算子节点的预计执行时间;
其中,所述本数据集的分布特征参数包括:所述本数据集中各个数据的相同字段下的取值的平均值、方差、取值范围、不同取值的个数;
每个计算子节点的计算资源包括:该计算子节点的CPU频率、内存容量中的至少一种。
17.根据权利要求15所述的方法,其特征在于,当N大于1时,所述获取第N轮迭代任务中,每个计算子节点的预计执行时间包括:
将每个计算子节点执行第N-1轮迭代任务的实际执行时间作为所述第N轮迭代任务中该计算子节点的预计执行时间。
18.根据权利要求15-17中任一项所述的方法,其特征在于,
所述根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量包括:
将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
所述根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量包括:
将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该空闲节点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
19.根据权利要求15-17任一所述的方法,其特征在于,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
20.根据权利要求19所述的方法,其特征在于,所述根据每个计算子节点的执行情况信息判断第N+1轮迭代任务是否需要进行负载均衡包括:
确定在第N轮迭代任务中,所有计算子节点中实际执行时间最长的计算子节点,和实际执行时间最短的计算子节点;
获取所述实际执行时间最长的计算子节点与所述实际执行时间最短的计算子节点之间的实际执行时间差异率;
将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N+1轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N+1轮迭代任务需要进行负载均衡。
21.一种数据挖掘方法,其特征在于,所述方法包括:
根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间;
根据每个计算子节点的预计执行时间判断所述第N轮迭代任务是否需要进行负载均衡;
若需要进行负载均衡,则根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据;若不需要进行负载均衡,不为每个计算子节点重分配任务数据;其中,所述任务数据为已获取的待挖掘的样本数据集的部分或全部数据;
在每个计算子节点根据分配的任务数据完成所述第N轮迭代任务后,获取所述第N轮迭代任务中每个计算子节点的执行情况信息;
根据每个计算子节点的执行情况信息更新所述时间学习模型的训练参数,若所述迭代任务未结束,则将N的值加1后利用更新后的时间学习模型重复执行所述根据时间学习模型获取第N轮迭代任务中,每个计算子节点的预计执行时间至所述根据每个计算子节点的执行情况信息更新所述时间学习模型的步骤;其中,N为正整数,N的起始值为1;
其中,所述根据每个计算子节点的预计执行时间为每个计算子节点重分配任务数据包括:
确定预计执行时间大于标准执行时间计算子节点,作为过载节点,并确定预计执行时间小于标准执行时间计算子节点,作为空闲节点;
根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量;
根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量;
按照过载节点的预计执行时间由大到小的顺序,依次将每个过载节点的任务数据按照该过载节点对应的需要移出的任务数据量移出,并将移出的任务数据按照空闲节点的预计执行时间由小到大的顺序,按照每个空闲节点的可移入的任务数据量依次移入到至少一个空闲节点中,直至所有过载节点需要移出的任务数据都迁移完成。
22.根据权利要求21所述的方法,其特征在于,所述时间学习模型是根据实际执行时间、计算资源使用率、历史任务数据量中的至少一个参数建立的。
23.根据权利要求22所述的方法,其特征在于,所述时间学习模型包括:
计算子节点i在第N轮迭代任务中的预计执行时间=a*计算子节点i在第N-1轮迭代任务中的实际执行时间+b*计算子节点i在第N-1轮迭代任务中的计算资源使用率+c*计算子节点i在第N-1轮迭代任务中的历史数据任务量+C;
其中,a为执行时间训练参数,b为计算资源使用率训练参数,c为历史任务量训练参数,C为训练常量,i为正整数;计算资源使用率包括CPU时用力、内存使用率中的至少一种,所述计算子节点i在第N-1轮迭代任务中的历史数据任务量为所述计算子节点i在第N-1轮迭代任务中的分配的任务数据量。
24.根据权利要求22-23任一所述的方法,其特征在于,所述根据每个计算子节点的预计执行时间判断所述第N轮迭代任务是否需要进行负载均衡包括:
确定在第N轮迭代任务中,所有计算子节点中预计执行时间最长的计算子节点,和预计执行时间最短的计算子节点;
获取所述预计执行时间最长的计算子节点与所述预计执行时间最短的计算子节点之间的预计执行时间差异率;
将所述时间差异率与预设差异率阈值进行比较,若所述时间差异率小于或等于所述预设差异率阈值,则确定第N轮迭代任务不需要进行负载均衡;若所述时间差异率大于所述预设差异率阈值,则确定第N轮迭代任务需要进行负载均衡。
25.根据权利要求22-23中任一项所述的方法,其特征在于,
所述根据每个过载节点的预计执行时间以及标准执行时间,获取每个过载节点的任务迁移比例,并根据每个过载节点的任务迁移比例获取每个过载节点需要移出的任务数据量包括:
将每个过载节点的预计执行时间与所述标准执行时间之差除以所述标准执行时间,得到该过载节点的任务迁移比例;
将每个过载节点上已存储任务数据的任务数据量乘以该过载节点的任务迁移比例,得到该过载节点需要移出的任务数据量;
所述根据每个空闲节点的预计执行时间以及所述标准执行时间,获取每个空闲节点的可移入任务比例,并根据每个空闲节点的可移入任务比例获取每个空闲节点的可移入的任务数据量包括:
将每个空闲节点的预计执行时间与所述标准执行时间之差的绝对值除以所述标准执行时间,得到该空闲节点的可移入任务比例;
将每个空闲节点上已存储任务数据的任务数据量乘以该空闲节点的可移入任务比例,得到该空闲节点的可移入的任务数据量。
26.根据权利要求22-23任一所述的方法,其特征在于,所述第N轮迭代任务中每个计算子节点的执行情况信息包括:每个计算子节点在所述第N轮迭代任务中的实际执行时间、计算资源使用率、任务数据量中的至少一种;
其中,所述计算资源使用率包括:CPU使用率、内存使用率中的至少一种。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410302143.8A CN105446979B (zh) | 2014-06-27 | 2014-06-27 | 数据挖掘方法和节点 |
PCT/CN2015/080677 WO2015196911A1 (zh) | 2014-06-27 | 2015-06-03 | 数据挖掘方法和节点 |
EP15811909.9A EP3139270A4 (en) | 2014-06-27 | 2015-06-03 | Data mining method and node |
US15/391,350 US10102038B2 (en) | 2014-06-27 | 2016-12-27 | Data mining method and node |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410302143.8A CN105446979B (zh) | 2014-06-27 | 2014-06-27 | 数据挖掘方法和节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105446979A CN105446979A (zh) | 2016-03-30 |
CN105446979B true CN105446979B (zh) | 2019-02-01 |
Family
ID=54936738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410302143.8A Active CN105446979B (zh) | 2014-06-27 | 2014-06-27 | 数据挖掘方法和节点 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10102038B2 (zh) |
EP (1) | EP3139270A4 (zh) |
CN (1) | CN105446979B (zh) |
WO (1) | WO2015196911A1 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10289626B2 (en) * | 2014-12-30 | 2019-05-14 | Teradata Us, Inc. | Distributed sequential pattern mining (SPM) using static task distribution strategy |
JP2016186704A (ja) * | 2015-03-27 | 2016-10-27 | 富士通株式会社 | 情報処理装置、情報処理システム及びプログラム |
CN105912390A (zh) * | 2016-04-07 | 2016-08-31 | 四川大学 | 云计算环境下基于模板的任务调度策略 |
CN105956190A (zh) * | 2016-06-14 | 2016-09-21 | 武汉斗鱼网络科技有限公司 | 基于rbf神经网络的搜索集群优化方法及系统 |
CN106339260B (zh) * | 2016-08-19 | 2020-11-20 | 北京小米移动软件有限公司 | 基于Jenkins平台的任务分配方法及装置 |
US11334391B2 (en) * | 2017-04-17 | 2022-05-17 | Red Hat, Inc. | Self-programmable and self-tunable resource scheduler for jobs in cloud computing |
CN107169513B (zh) * | 2017-05-05 | 2019-10-18 | 第四范式(北京)技术有限公司 | 控制数据使用顺序的分布式机器学习系统及其方法 |
CN107133332B (zh) * | 2017-05-11 | 2020-10-16 | 广州视源电子科技股份有限公司 | 一种查询任务的分配方法及装置 |
US10747546B2 (en) * | 2017-06-19 | 2020-08-18 | Mitsubishi Electric Corporation | Distributed allocation device, distributed allocation system, and distributed allocation method |
CN108197835B (zh) * | 2018-02-05 | 2022-02-15 | 北京航空航天大学 | 任务分配方法、装置、计算机可读存储介质及电子设备 |
CN110233798B (zh) | 2018-03-05 | 2021-02-26 | 华为技术有限公司 | 数据处理方法、装置及系统 |
CN108681482B (zh) * | 2018-05-16 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 基于图数据的任务调度方法和装置 |
CN109144689B (zh) * | 2018-06-29 | 2023-06-06 | 华为云计算技术有限公司 | 任务调度方法、装置及计算机程序产品 |
CN109901921B (zh) * | 2019-02-22 | 2022-02-11 | 北京致远互联软件股份有限公司 | 任务队列执行时间预测方法、装置及实现装置 |
CN110096376B (zh) * | 2019-04-03 | 2024-05-14 | 北京神州数码云科信息技术有限公司 | 一种数据转移方法及相关设备 |
CN110046048B (zh) * | 2019-04-18 | 2021-09-28 | 杭州电子科技大学 | 一种基于工作量自适应快速重分配的负载均衡方法 |
CN110362611B (zh) * | 2019-07-12 | 2021-07-09 | 拉卡拉支付股份有限公司 | 一种数据库查询方法、装置、电子设备及存储介质 |
CN110727516B (zh) * | 2019-10-12 | 2020-08-28 | 江苏卫健信息科技有限公司 | 一种数据分析任务的分配方法 |
CN111651426B (zh) * | 2020-04-30 | 2024-06-25 | 平安科技(深圳)有限公司 | 数据迁移方法、装置及计算机可读存储介质 |
CN112860763B (zh) * | 2021-02-08 | 2022-12-23 | 南京苏宁软件技术有限公司 | 实时流数据处理方法、装置、计算机设备和存储介质 |
CN113535771B (zh) * | 2021-06-21 | 2023-11-28 | 跬云(上海)信息科技有限公司 | 持续迭代优化的预计算方法和装置 |
CN113392092A (zh) * | 2021-07-06 | 2021-09-14 | 山东电力工程咨询院有限公司 | 一种数据中心的数据库管理方法及系统 |
CN113723180B (zh) * | 2021-07-19 | 2023-08-01 | 山东大学 | 构建服务机器人主动物品检测模型数据集的方法和系统 |
CN114201296B (zh) * | 2021-12-09 | 2023-07-21 | 厦门美亚亿安信息科技有限公司 | 一种基于流式处理平台的数据平衡方法和系统 |
CN114357875B (zh) * | 2021-12-27 | 2022-09-02 | 广州龙数科技有限公司 | 基于机器学习的智能数据处理系统 |
CN115174695B (zh) * | 2022-07-18 | 2024-01-26 | 中软航科数据科技(珠海横琴)有限公司 | 一种用于分布式网络资源的调度系统及方法 |
CN117573375B (zh) * | 2024-01-15 | 2024-04-02 | 上海交通大学四川研究院 | 一种面向自适应解耦方程的动态负载平衡并行计算方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630129A (en) * | 1993-12-01 | 1997-05-13 | Sandia Corporation | Dynamic load balancing of applications |
CN101184031A (zh) * | 2007-12-03 | 2008-05-21 | 浙江大学 | 面向网络多媒体传输服务的客户端主动性负载平衡方法 |
CN101605092A (zh) * | 2009-07-10 | 2009-12-16 | 浪潮电子信息产业股份有限公司 | 一种基于内容的负载均衡系统 |
CN102831012A (zh) * | 2011-06-16 | 2012-12-19 | 日立(中国)研究开发有限公司 | 多节点分布式系统中的任务调度装置和任务调度方法 |
CN103257896A (zh) * | 2013-01-31 | 2013-08-21 | 南京理工大学连云港研究院 | 一种云环境下的Max-D作业调度方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590984B2 (en) * | 2003-05-29 | 2009-09-15 | International Business Machines Corporation | System and method for balancing a computing load among computing resources in a distributed computing problem |
US8108863B2 (en) * | 2005-12-30 | 2012-01-31 | Intel Corporation | Load balancing for multi-threaded applications via asymmetric power throttling |
CN101764835B (zh) | 2008-12-25 | 2012-09-05 | 华为技术有限公司 | 基于MapReduce编程架构的任务分配方法及装置 |
US8719833B2 (en) * | 2010-06-24 | 2014-05-06 | Sap Ag | Adaptive demand-driven load balancing |
US8645454B2 (en) * | 2010-12-28 | 2014-02-04 | Canon Kabushiki Kaisha | Task allocation multiple nodes in a distributed computing system |
-
2014
- 2014-06-27 CN CN201410302143.8A patent/CN105446979B/zh active Active
-
2015
- 2015-06-03 WO PCT/CN2015/080677 patent/WO2015196911A1/zh active Application Filing
- 2015-06-03 EP EP15811909.9A patent/EP3139270A4/en not_active Ceased
-
2016
- 2016-12-27 US US15/391,350 patent/US10102038B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630129A (en) * | 1993-12-01 | 1997-05-13 | Sandia Corporation | Dynamic load balancing of applications |
CN101184031A (zh) * | 2007-12-03 | 2008-05-21 | 浙江大学 | 面向网络多媒体传输服务的客户端主动性负载平衡方法 |
CN101605092A (zh) * | 2009-07-10 | 2009-12-16 | 浪潮电子信息产业股份有限公司 | 一种基于内容的负载均衡系统 |
CN102831012A (zh) * | 2011-06-16 | 2012-12-19 | 日立(中国)研究开发有限公司 | 多节点分布式系统中的任务调度装置和任务调度方法 |
CN103257896A (zh) * | 2013-01-31 | 2013-08-21 | 南京理工大学连云港研究院 | 一种云环境下的Max-D作业调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105446979A (zh) | 2016-03-30 |
WO2015196911A1 (zh) | 2015-12-30 |
EP3139270A1 (en) | 2017-03-08 |
US20170109207A1 (en) | 2017-04-20 |
US10102038B2 (en) | 2018-10-16 |
EP3139270A4 (en) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105446979B (zh) | 数据挖掘方法和节点 | |
CN105786860A (zh) | 一种数据建模中的数据处理方法及装置 | |
Pholdee et al. | Hybridisation of real-code population-based incremental learning and differential evolution for multiobjective design of trusses | |
CN106600067A (zh) | 多维立方体模型的优化方法和装置 | |
CN107430704A (zh) | 基于与神经网络算法关联的元数据在神经突触基底上实现神经网络算法 | |
CN109740755A (zh) | 一种基于梯度下降法的数据处理方法及相关装置 | |
CN106250457B (zh) | 大数据平台物化视图的查询处理方法及系统 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN116501505B (zh) | 负载任务的数据流生成方法、装置、设备及介质 | |
CN106371924A (zh) | 一种最小化MapReduce集群能耗的任务调度方法 | |
CN104268243A (zh) | 一种位置数据处理方法及装置 | |
CN114675975A (zh) | 一种基于强化学习的作业调度方法、装置及设备 | |
CN106648839A (zh) | 数据处理的方法和装置 | |
CN111078380A (zh) | 一种多目标任务调度方法及系统 | |
CN107528731B (zh) | 应用于ns3并行仿真的网络分割优化算法 | |
CN113205128A (zh) | 基于无服务器计算的分布式深度学习性能保证方法 | |
CN112232401A (zh) | 一种基于差分隐私及随机梯度下降的数据分类方法 | |
TW201734831A (zh) | 應用歸屬服務集群的分配方法和裝置 | |
CN108446342A (zh) | 一种环境质量评价系统、方法、装置及存储装置 | |
CN108256694A (zh) | 基于重复遗传算法的模糊时间序列预测系统、方法及装置 | |
Li et al. | An improved differential evolution task scheduling algorithm based on cloud computing | |
CN113191534A (zh) | 物流资源分配方法、装置、设备及存储介质 | |
CN110378150A (zh) | 一种基于度序列最佳分组进行图结构修改的网络匿名方法 | |
Partovi et al. | Service centers location problem considering service diversity within queuing framework | |
AbouEisha et al. | Hybrid direct and iterative solver with library of multi-criteria optimal orderings for h adaptive finite element method computations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |