CN110727516B - 一种数据分析任务的分配方法 - Google Patents
一种数据分析任务的分配方法 Download PDFInfo
- Publication number
- CN110727516B CN110727516B CN201910967760.2A CN201910967760A CN110727516B CN 110727516 B CN110727516 B CN 110727516B CN 201910967760 A CN201910967760 A CN 201910967760A CN 110727516 B CN110727516 B CN 110727516B
- Authority
- CN
- China
- Prior art keywords
- task
- server
- data
- data analysis
- execution time
- 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
Images
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种数据分析任务的分配方法,该方法由分配服务器接收任务分配请求,并获取每台任务服务器的当前任务强度值,将待分配任务分配给当前任务强度值最小的任务服务器。该方法实现任务服务器的负载均衡,在大量任务并发的情况下,相对于现有技术具有更高的任务执行效率。
Description
技术领域
本发明属于计算机领域,尤其涉及一种数据分析任务的调度方法。
背景技术
数据分析任务指的是计算机对一些领域数据进行既定的计算和分析任务,尤其现在随着大数据应用的越来越广泛,需要对海量的数据执行既定的不同目的的多种分析任务,得到需要的分析结果。
对于海量数据的分析,由于数据量大,需要执行的数据分析任务也有许多种,现有技术中通常使用数据服务器存储数据(这里的数据服务器可以是单个服务器,或者是一个服务器集群,本发明对此不作区分),然后使用多个任务服务器分别执行不同的数据分析任务,每个数据分析任务分别从数据服务器读取需要的数据,然后进行计算。不同的数据分析任务的计算量不同,不同任务服务器的性能和负荷也不同,因此需要根据实时情况将数据分析任务分配给不同的任务服务器。
发明内容
为了解决现有技术中的上述问题,本发明提供了一种数据分析任务的调度方法。
本发明采用的技术方案具体如下:
一种数据分析任务的分配方法,包括以下步骤:
步骤100:分配服务器接收数据分析任务的任务分配请求,所述任务分配请求中包括待分配任务的存储地址、任务强度和分析对象;其中,所述任务强度是该待分配任务在标准服务器上运行并分析预定数据量所需要的时间,所述分析对象是该待分配任务需要分析的数据记录类型;
步骤200:所述分配服务器获取每台任务服务器的当前任务强度值;其中,一台任务服务器的当前任务强度值指的是该任务服务器上当前执行的所有数据分析任务的剩余执行时间之和;
步骤300:所述分配服务器将待分配任务分配给当前任务强度值最小的任务服务器。
进一步地,所述步骤200中,任务服务器的当前任务强度值的具体计算方法包括:
步骤210:任务服务器在运行每个任务之前,计算该任务的预计执行总时间;设数据分析任务Taski的任务强度为Ki,该任务服务器的性能值为P,Taski需要分析的数据量为Di,标准服务器的标准性能值为P0,所述预定数据量为D0,则该任务服务器计算Taski的预计执行总时间Ti为:
步骤220:任务服务器统计当前运行的每个任务的已执行时间;
步骤230:任务服务器计算每个任务的剩余执行时间,所述任务的剩余执行时间等于任务的预计执行总时间减去任务的已执行时间;任务服务器的当前任务强度值为该任务服务器上当前执行的所有任务的剩余执行时间之和。
进一步地,所述标准服务器是一台具有预设的固定配置的服务器,所述固定配置包括硬件配置和软件配置。
进一步地,所述数据量是数据库中相应记录的数量。
进一步地,使用预定的benchmark程序来确定和量化标准服务器和任务服务器的性能值。
进一步地,所述待分配任务是外部发起的,需要分配服务器进行分配的新的数据分析任务。
进一步地,所述待分配任务是已经存储于分配服务器的数据分析任务。
进一步地,所述待分配任务是定期执行的数据分析任务。
进一步地,数据分析任务所分析的数据存储于数据服务器中。
进一步地,数据服务器运行数据库系统以存储所述数据。
本发明的有益效果是:实现任务服务器的负载均衡,在大量任务并发的情况下,相对于现有技术具有更高的任务执行效率。
附图说明
此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
图1是本发明方法所使用的系统结构图。
具体实施方式
下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。
参见附图1,其示出了用于执行本发明方法的系统结构图。该系统包括数据服务器、分配服务器和多个任务服务器。
其中,所述数据服务器用于存储基础数据,所述基础数据提供给任务服务器以执行相应的任务,通常使用数据库来存储所述基础数据。
所述分配服务器用于接收新任务,并将新任务按照本发明的方法分配给任务服务器执行,需要说明的是,有一些数据分析任务是定期重复执行的,则每次执行都视为一个新任务。
所述任务服务器接收分配服务器发送过来的任务,并执行所述任务。
本发明所说的任务可以是任何一种对基础数据进行分析的任务,更具体的说,是一个执行数据分析的计算机程序。该任务在任务服务器上执行时,可以从数据服务器读取基础数据并分析,输出相应的分析结果,因此,数据分析任务的执行时间在很大程度上依赖于其需要分析的数据量。举例而言,一种对地图数据进行分析的任务,随着地图数据的增加,任务执行的时间也随之增加,对一个省地图进行分析和对整个国家地图进行分析,其时间会有显著不同。总之,对于通常的数据分析任务而言,其执行时间与其需要分析的数据量呈现正比例的关系。
基于数据分析任务的上述特点,本发明使用任务强度来表示一个数据分析任务的标准执行时间,并以此衡量该数据分析任务给任务服务器带来的负荷。具体的,所述标准执行时间是该数据分析任务在标准服务器上运行并分析预定数据量所需要的时间。所述标准服务器是一台具有预设的固定配置(包括硬件配置和软件配置)的服务器,因此该标准服务器具有固定的性能。根据该数据分析任务的数据需求,预先设置一些数据样本,数据样本的量就是所述预定数据量(以下记为预定数据量D0)。通常而言,数据量指的是数据库中的记录数量。
该数据分析任务在该标准服务器上运行,分析所述数据样本,全部分析完成所需要的时间就是所述标准执行时间,所述标准执行时间就是该数据分析任务的任务强度。
上面定义了一个标准服务器,但是实际情况中,使用的任务服务器的配置和性能都可能不同,因此需要对服务器的性能也进行量化衡量。
首先,对标准服务器的性能进行量化,设定一个标准性能值。根据本发明的一个实施例,可以使用一个预设的标准任务在标准服务器上运行,确定该标准任务完成运行的时间长度,可以将该时间长度的倒数作为标准服务器的标准性能值。实际上,现有技术中已经有了类似的技术,即使用预定的benchmark程序来确定和量化计算机的性能数值,本发明也可以采用现有的benchmark程序来衡量服务器性能,这已是现有技术,在此不再赘述。总之,针对标准服务器,可以确定其一个性能数值,作为标准性能值。
然后,对系统中使用的每一台任务服务器,采用与标准服务器相同的性能量化方法,也可以确定其相应的性能值。服务器的计算性能越高,其性能值也越高。
基于上述方法,可以得到标准性能值为P0,设系统中共有n台任务服务器,记为Server1,Server2,……,Servern,其中Serveri的性能值为Pi(1≤i≤n)。
在上述系统的基础上,下面详细说明本发明的任务分配方法:
步骤100:分配服务器接收新的任务分配请求,所述任务分配请求中包括待分配任务的存储地址、任务强度和分析对象。
所述待分配任务可以是外部发起的,需要分配服务器进行分配的新的数据分析任务,也可以是已经存储于分配服务器的数据分析任务,例如需要定期执行的数据分析任务。但是无论是哪种待分配任务,都需要向分配服务器发起该待分配任务的任务分配请求,请求分配服务器向相应任务服务器分配任务。
如前所述,所述待分配任务实际上包括了一个用于数据分析的计算机程序,该计算机程序存储于某个存储位置,可以存储于某个外部存储器,也可以存储于分配服务器中,具体的任务传输和存储方式已经是现有技术,而任务分配请求中只需要指明具体的存储地址即可。
任务分配请求中还需要包括该待分配任务的任务强度,所述任务强度应当事先计算完毕,例如由任务程序的编写者事先在标准服务器上执行该任务得到。
任务分配请求中还包括待分配任务的分析对象,即该任务所需要分析的数据记录。例如,如果该任务需要分析电子商务中的交易数据,其分析对象就是数据服务器中的每一条交易记录。
步骤200:所述分配服务器获取每台任务服务器的当前任务强度值。
具体的,一台任务服务器的当前任务强度值指的是该任务服务器上当前执行的所有任务的剩余执行时间之和。因而需要计算每个任务的剩余执行时间,概括而言,一个任务的剩余执行时间是该任务的预计执行总时间减去该任务的已执行时间。具体的计算步骤如下:
步骤210:任务服务器在运行每个任务之前,计算该任务的预计执行总时间。
具体的,设数据分析任务Taski的任务强度为Ki,该任务服务器的性能值为P,该任务服务器在运行Taski之前,根据Taski的分析对象确定其需要分析的数据量。例如,如果分析对象是数据服务器中的每一条交易记录,则任务服务器只需要向数据服务器查询当前有多少条交易记录,就可以确定其需要分析的数据量。
假设Taski需要分析的数据量为Di,则任务服务器计算Taski的预计执行总时间Ti为:
由上式可知,一个数据分析任务的预计执行总时间和它需要分析的数据量成正比,和服务器性能成反比。
基于步骤210,每个任务服务器都可以预计其上执行的每个数据分析任务的执行总时间。
步骤220:任务服务器统计当前运行的每个任务的已执行时间。
由于任务服务器有可能是同时并行执行多个任务,因此每个任务的已执行时间需要考虑并行执行的影响。具体的,如果在一个时间段内,任务服务器上只运行一个任务,则这整个时间段的长度都应当统计为该任务的已执行时间。如果在一个时间段内,任务服务器上并行执行了m个任务,则这m个任务中每一个任务的已执行时间只包括这个时间段长度的m分之一。
基于上述统计原则,任务服务器根据每个任务的起始和结束时间,可以将运行时间划分为多个时间段,根据每个时间段内并行任务的数量,统计每个任务的已执行时间。总之,所述已执行时间反映了每个任务实际的运行时间。
需要说明的是,上述预计执行总时间和已执行时间都只是一个大致估计值,其可能受到实际服务器运行状况的影响而并不精确。但是本发明只是为了任务分配,并不需要非常精确的值,只需要一个估计值就足够了。
步骤230:任务服务器计算每个任务的剩余执行时间,所述任务的剩余执行时间等于任务的预计执行总时间减去任务的已执行时间;任务服务器的当前任务强度值为该任务服务器上当前执行的所有任务的剩余执行时间之和。
至此,步骤200通过上述具体步骤210-230,使得每个任务服务器可以计算获得其当前任务强度值。该当前任务强度值使用估计的所有任务剩余执行时间和来表示,实际上表明了任务服务器的任务负荷。
在获取了各个任务服务器的当前任务强度值后,分配服务器就可以根据这些强度值来分配任务。
步骤300:所述分配服务器将待分配任务分配给当前任务强度值最小的任务服务器。
具体的,分配服务器选择当前任务强度值最小的任务服务器,将所述任务分配请求的内容发送给该任务服务器。该任务服务器从所述存储地址读取任务的程序代码并运行。此外,该任务服务器还需要存储该任务的任务强度和分析对象,以用于后续需要时执行步骤210,计算该任务的预计执行总时间。
通过上述步骤,分配服务器总是将待分配任务分配给任务负荷最小的任务服务器,实现了任务分配的均衡。通过大量大数据分析的实践,证明本发明的方法在大量任务并发的情况下,相对于现有技术具有更高的任务执行效率。
以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。
Claims (9)
1.一种数据分析任务的分配方法,其特征在于,包括以下步骤:
步骤100:分配服务器接收数据分析任务的任务分配请求,所述任务分配请求中包括待分配任务的存储地址、任务强度和分析对象;其中,所述任务强度是该待分配任务在标准服务器上运行并分析预定数据量所需要的时间,所述分析对象是该待分配任务需要分析的数据记录类型;
步骤200:所述分配服务器获取每台任务服务器的当前任务强度值;其中,一台任务服务器的当前任务强度值指的是该任务服务器上当前执行的所有数据分析任务的剩余执行时间之和;
步骤300:所述分配服务器将待分配任务分配给当前任务强度值最小的任务服务器;
所述步骤200中,任务服务器的当前任务强度值的具体计算方法包括:
步骤210:任务服务器在运行每个任务之前,计算该任务的预计执行总时间;设数据分析任务Taski的任务强度为Ki,该任务服务器的性能值为P,Taski需要分析的数据量为Di,标准服务器的标准性能值为P0,所述预定数据量为D0,则该任务服务器计算Taski的预计执行总时间Ti为:
其中,任务服务器根据数据分析任务的分析对象,确定其需要分析的数据量;
步骤220:任务服务器统计当前运行的每个任务的已执行时间;
步骤230:任务服务器计算每个任务的剩余执行时间,所述任务的剩余执行时间等于任务的预计执行总时间减去任务的已执行时间;任务服务器的当前任务强度值为该任务服务器上当前执行的所有任务的剩余执行时间之和。
2.根据权利要求1所述的方法,其特征在于,所述标准服务器是一台具有预设的固定配置的服务器,所述固定配置包括硬件配置和软件配置。
3.根据权利要求1-2任意一项所述的方法,其特征在于,所述数据量是数据库中相应记录的数量。
4.根据权利要求1-2任意一项所述的方法,其特征在于,使用预定的benchmark程序来确定和量化标准服务器和任务服务器的性能值。
5.根据权利要求1所述的方法,其特征在于,所述待分配任务是外部发起的,需要分配服务器进行分配的新的数据分析任务。
6.根据权利要求1所述的方法,其特征在于,所述待分配任务是已经存储于分配服务器的数据分析任务。
7.根据权利要求6所述的方法,其特征在于,所述待分配任务是定期执行的数据分析任务。
8.根据权利要求1所述的方法,其特征在于,数据分析任务所分析的数据存储于数据服务器中。
9.根据权利要求8所述的方法,其特征在于,数据服务器运行数据库系统以存储所述数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910967760.2A CN110727516B (zh) | 2019-10-12 | 2019-10-12 | 一种数据分析任务的分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910967760.2A CN110727516B (zh) | 2019-10-12 | 2019-10-12 | 一种数据分析任务的分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110727516A CN110727516A (zh) | 2020-01-24 |
CN110727516B true CN110727516B (zh) | 2020-08-28 |
Family
ID=69220059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910967760.2A Active CN110727516B (zh) | 2019-10-12 | 2019-10-12 | 一种数据分析任务的分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110727516B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426544A (zh) * | 2011-11-04 | 2012-04-25 | 浪潮(北京)电子信息产业有限公司 | 任务分配方法和系统 |
JP2013140490A (ja) * | 2012-01-04 | 2013-07-18 | Fujitsu Ltd | 並列計算制御装置及び並列計算制御方法 |
CN105446979A (zh) * | 2014-06-27 | 2016-03-30 | 华为技术有限公司 | 数据挖掘方法和节点 |
CN106936925A (zh) * | 2017-04-17 | 2017-07-07 | 广州孩教圈信息科技股份有限公司 | 负载均衡方法和系统 |
CN107528914A (zh) * | 2017-09-12 | 2017-12-29 | 电子科技大学 | 数据分片的资源征用调度方法 |
CN108446318A (zh) * | 2018-02-08 | 2018-08-24 | 广州奥佳软件技术有限公司 | 一种海量数据智能决策分析系统 |
-
2019
- 2019-10-12 CN CN201910967760.2A patent/CN110727516B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426544A (zh) * | 2011-11-04 | 2012-04-25 | 浪潮(北京)电子信息产业有限公司 | 任务分配方法和系统 |
JP2013140490A (ja) * | 2012-01-04 | 2013-07-18 | Fujitsu Ltd | 並列計算制御装置及び並列計算制御方法 |
CN105446979A (zh) * | 2014-06-27 | 2016-03-30 | 华为技术有限公司 | 数据挖掘方法和节点 |
CN106936925A (zh) * | 2017-04-17 | 2017-07-07 | 广州孩教圈信息科技股份有限公司 | 负载均衡方法和系统 |
CN107528914A (zh) * | 2017-09-12 | 2017-12-29 | 电子科技大学 | 数据分片的资源征用调度方法 |
CN108446318A (zh) * | 2018-02-08 | 2018-08-24 | 广州奥佳软件技术有限公司 | 一种海量数据智能决策分析系统 |
Non-Patent Citations (3)
Title |
---|
Scheduling Hadoop Jobs to Meet Deadlines;Kamal Kc等;《2nd IEEE International Conference on Cloud Computing Technology and Science》;20110204;第388-392页 * |
在线多任务异构云服务器负载均衡算法研究;徐爱萍等;《计算机科学》;20160615;第43卷(第6期);第50-54页 * |
异构环境下作业时间感知的MapReduce调度策略;石磊等;《小型微型计算机系统》;20170815;第38卷(第8期);第1757-1761页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110727516A (zh) | 2020-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9575810B2 (en) | Load balancing using improved component capacity estimation | |
US9870269B1 (en) | Job allocation in a clustered environment | |
CN103458052B (zh) | 一种基于IaaS云平台的资源调度方法和装置 | |
US8024737B2 (en) | Method and a system that enables the calculation of resource requirements for a composite application | |
WO2019153487A1 (zh) | 系统性能的度量方法、装置、存储介质和服务器 | |
US7467291B1 (en) | System and method for calibrating headroom margin | |
US20200012602A1 (en) | Cache allocation method, and apparatus | |
CN102868573B (zh) | Web服务负载云测试方法和装置 | |
US8756307B1 (en) | Translating service level objectives to system metrics | |
US10411969B2 (en) | Backend resource costs for online service offerings | |
CN104462432A (zh) | 自适应的分布式计算方法 | |
CN110147470B (zh) | 一种跨机房数据比对系统及方法 | |
CN104407926A (zh) | 一种云计算资源的调度方法 | |
CN110636388A (zh) | 一种业务请求分配方法、系统、电子设备及存储介质 | |
US20220050814A1 (en) | Application performance data processing | |
CN113867953A (zh) | 一种资源分配方法、装置、存储介质和电子设备 | |
WO2022266263A1 (en) | Allocating of computing resources for applications | |
CN111565216A (zh) | 一种后端负载均衡方法、装置、系统及存储介质 | |
US9111022B2 (en) | Simulation techniques for predicting in-memory database systems performance | |
Liu et al. | High-responsive scheduling with MapReduce performance prediction on hadoop YARN | |
CN110727516B (zh) | 一种数据分析任务的分配方法 | |
CN115952005B (zh) | 一种元数据负载均衡方法、装置、设备及可读存储介质 | |
JP4416626B2 (ja) | 処理時間算出プログラム | |
CN116962532A (zh) | 集群任务调度方法、装置、计算机设备及存储介质 | |
CN112463361A (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 |