CN106569887B - 一种云环境下细粒度任务调度方法 - Google Patents
一种云环境下细粒度任务调度方法 Download PDFInfo
- Publication number
- CN106569887B CN106569887B CN201610969793.7A CN201610969793A CN106569887B CN 106569887 B CN106569887 B CN 106569887B CN 201610969793 A CN201610969793 A CN 201610969793A CN 106569887 B CN106569887 B CN 106569887B
- Authority
- CN
- China
- Prior art keywords
- tasks
- task
- fine
- machines
- grained
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- 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/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种云环境下细粒度任务调度方法,包括如下步骤:(1)将作业按一定方式划分为细粒度任务,对细粒度的任务进行优先级和资源限制情况进行判断,根据优先级高低和资源是否有限制,将任务调度到不同的机器和机器中不同的队列上;(2)每个机器上预设有不同的架构执行器,机器接收到任务后,分配到相应与有任务一致架构的队列上排队等待执行器执行。本发明的有益效果为:提供细粒度任务去中心化调度方法,有效解决中心化方式调度对于细粒度任务的高延迟问题,并且不存在长尾现象,吞吐量也相应提高。
Description
技术领域
本发明涉及云计算资源分配/调度领域,尤其是一种云环境下细粒度任务调度方法。
背景技术
大规模的数据分析框架越来越偏向任务更短的执行时间和更高的并行度来提供更低的延迟。一些高性能应用需要有内部高吞吐量服务来满足每秒数千次的用户请求,来优化用户体验,所以低延迟的响应这些请求非常重要。例如面向用户的服务能够运行更加复杂的并行计算,语言翻译、高度个性化搜索等。
已经有很多数据分析框架来分析大数据,比如Dremel、Impala和Spark等,它们都不断缩减响应时间,已经能达到秒级了。
有很多极短的次秒级的任务组成的作业,面临很大的调度困难。对这样一个集群,相当于一秒钟要做百万次调度决策,这些决策也需要很低的延迟。
目前应用广泛的中心化调度策略并不支持次秒级的并行任务,它需要处理的是两倍于现存最快的调度的吞吐量,改进中心化调度策略以支持次秒级并行任务存在瓶颈难以突破。
Spark是一个比较新的大数据并行计算框架,启用了内存分布数据集,除了能够提供交互式查询外,还可以优化迭代工作负载。作业的中间输出结果可以保存在内存上,不需要读取Hadoop分布式文件系统HDFS,因此更适合数据挖掘机器学习等需要频繁迭代的MapReduce的算法。
但是Spark使用的仍然是中心化调度方法,还是无法克服延迟问题。
发明内容
本发明所要解决的技术问题在于,提供一种云环境下细粒度任务调度方法,可以有效解决中心化方式调度对于细粒度任务的高延迟问题,提高吞吐量。
为解决上述技术问题,本发明提供一种云环境下细粒度任务调度方法,包括如下步骤:
(1)将作业按一定方式划分为细粒度任务,对细粒度的任务进行优先级和资源限制情况进行判断,根据优先级高低和资源是否有限制,将任务调度到不同的机器和机器中不同的队列上;
(2)每个机器上预设有不同的架构执行器,机器接收到任务后,分配到相应与有任务一致架构的队列上排队等待执行器执行。
优选的,步骤(1)中,对需要用户提交的作业,分配一个调度器,根据作业的架构类型,标记架构类型,并标记优先级。
优选的,步骤(1)中,分配任务到不同机器和不同队列包括如下步骤:
S1、调度器按顺序调度数量值为n的任务,判断任务的优先级,如果是高优先级进入S2,如果是低优先级进入S3;
S2、随机选取n*m个机器,m是一个大于2的数值,按照任务的架构,选取其中在预设架构下队列最短的n个机器,任务进入高优先级的队列,并根据自身的架构类型抢占式占取该预设架构的队列,执行步骤S4;
S3、判断任务是否有资源限制,若有资源限制,调度器向符合资源限制的机器发送探测器,并在队列中预留一个任务的位置,机器一旦空闲,向调度器回馈信息;若没有资源限制,则随机选取n*m个机器发送探测器,并在队列中预留一个任务的位置,一旦有空闲机器就向调度器反馈信息,当有n个机器开始执行任务时,调度器向剩余n*(m-1)个机器发送终止请求信息;
S4、在队列上的任务要开始执行时,相应有预设架构的执行器,读取输入数据,并开始执行任务;
S5、判断该作业的所有任务是否已经全部完成,如果没有全部完成,则跳转至S1;
S6、全部完成,作业执行结束。
优选的,步骤(2)中,预设的架构为Spark中的处理数据模型或MapReduce中的处理数据模型。
优选的,步骤(2)中,执行器真正开始执行任务,向调度器发送正在执行的信号。
优选的,步骤(2)中,若调度器中计数器达到分发的任务数,所有任务都已经执行,调度器向剩下的有预留位置的工作节点发送撤销预留位置的信号。
本发明的有益效果为:提供细粒度任务去中心化调度方法,有效解决中心化方式调度对于细粒度任务的高延迟问题,并且不存在长尾现象,吞吐量也相应提高。
附图说明
图1是本发明的基本原理示意图。
图2是本发明的调度方法的流程示意图。
图3是本发明的实施例中调度方法的流程示意图。
图4是本发明的RPC信息流动图。
图5是本发明的子流程的示意图。
具体实施方式
如图1和图2所示,一种云环境下细粒度任务调度方法,包括如下步骤:
(1)将作业按一定方式划分为细粒度任务,对细粒度的任务进行优先级和资源限制情况进行判断,根据优先级高低和资源是否有限制,将任务调度到不同的机器和机器中不同的队列上;需要用户提交的作业,分配一个调度器,根据作业的架构类型,标记架构类型,并标记优先级;将作业按照执行先后顺序划分阶段,进行有向无环图调度,划分出若干细粒度任务,每个阶段包含若干任务的任务集;
(2)每个机器上预设有不同的架构执行器,预设的架构为Spark中的处理数据模型或MapReduce中的处理数据模型;机器接收到任务后,分配到相应与有任务一致架构的队列上排队等待执行器执行,等待执行的任务实际为任务在工作节点上预留的位置;执行器真正开始执行任务,向调度器发送已执行的信号;若调度器中计数器达到分发的任务数,所有任务都已执行,调度器向剩下的有预留位置的工作节点发送撤销预留位置的信号。
步骤(1)中,分配任务到不同机器和不同队列包括如下步骤:
S1、调度器按顺序调度数量值为n的任务,判断任务的优先级,如果是高优先级进入S2,如果是低优先级进入S3;n的取值范围为5~8,步骤S2中,m的取值范围为2~3;
S2、随机选取n*m个机器,m是一个大于2的数值,按照任务的架构,选取其中在预设架构下队列最短的n个机器,任务进入高优先级的队列,并根据自身的架构类型抢占式占取该预设架构的队列,执行步骤S4;
S3、判断任务是否有资源限制,若有资源限制,调度器向符合资源限制的机器发送探测器,并在队列中预留一个任务的位置,机器一旦空闲,向调度器回馈信息;若没有资源限制,则随机选取n*m个机器发送探测器,并在队列中预留一个任务的位置,一旦有空闲机器就向调度器反馈信息,当有n个机器开始执行任务时,调度器向剩余n*(m-1)个机器发送终止请求信息;
S4、在队列上的任务要开始执行时,相应有预设架构的执行器,读取输入数据,并开始执行任务;
S5、判断该作业的所有任务是否已经全部完成,如果没有全部完成,则跳转至S1;
S6、全部完成,作业执行结束。
为了使公众更好的理解,下面以一个实施例来对本发明技术方案进行进一步详细说明。如图3、4和图5所示,本发明的方法实现流程具体如下:
步骤s101、用户提交一个查询作业,分配一个调度器,跟据作业的架构类型为Spark,标记为Spark架构,并标记优先级低;
步骤s102、按顺序分配3个任务,并执行接下来任务处理工作;
步骤s103、调度器开始判断任务的优先级,为低优先级,转入下步;部分为高优先级,转入s110;
步骤s104、判断是否有条件限制,这里为是否有本地化数据,结果是有条件限制转入步骤s105,无条件限制的转入步骤s107;
步骤s105、寻找发现,有该部分任务数据的机器节点为3台,并向这3台符合条件的机器发送探测器;
步骤s106、机器执行完毕以前的任务,已空闲,此时向调度器发送自己空闲状态的信息;
步骤s107、随机选取3*4台机器,发送请求的探测器;
步骤s108、陆续有3台机器回馈空闲状态,调度器一次分配任务给这些机器,在3台机器都反馈完信息后,调度器发送取消信息给剩余3*3台机器;
步骤s109、将任务发给这些机器,并排入预设有Spark架构的队列,从本地读取相应的输入数据,执行器运行任务,直至完成,跳转到步骤是s111;
步骤s110、随机选取3*4个机器选取预设架构为Spark队列长度短的3个机器,并进入机器的高优先级队列,然后等待该机器上Spark队列目前运行的task结束,抢占Spark队列。读取相应的数据,执行器运行任务,直至完成,跳转到步骤s109;
步骤s111、判断该Spark作业是否已经完成,若没有完成转至步骤s102。
本发明尤其适用于实时性较强,交互性较强的作业,能达到提高吞吐量,降低延迟性的有益效果。
尽管本发明就优选实施方式进行了示意和描述,但本领域的技术人员应当理解,只要不超出本发明的权利要求所限定的范围,可以对本发明进行各种变化和修改。
Claims (5)
1.一种云环境下细粒度任务调度方法,其特征在于,包括如下步骤:
(1)将作业按一定方式划分为细粒度任务,对细粒度的任务进行优先级和资源限制情况进行判断,根据优先级高低和资源是否有限制,将任务调度到不同的机器和机器中不同的队列上;分配任务到不同机器和不同队列包括如下步骤:
S1、调度器按顺序调度数量值为n的任务,判断任务的优先级,如果是高优先级进入S2,如果是低优先级进入S3;
S2、随机选取n*m个机器,m是一个大于2的数值,按照任务的架构,选取其中在预设架构下队列最短的n个机器,任务进入高优先级的队列,并根据自身的架构类型抢占式占取该预设架构的队列,执行步骤S4;
S3、判断任务是否有资源限制,若有资源限制,调度器向符合资源限制的机器发送探测器,并在队列中预留一个任务的位置,机器一旦空闲,向调度器回馈信息;若没有资源限制,则随机选取n*m个机器发送探测器,并在队列中预留一个任务的位置,一旦有空闲机器就向调度器反馈信息,当有n个机器开始执行任务时,调度器向剩余n*(m-1)个机器发送终止请求信息;
S4、在队列上的任务要开始执行时,相应有预设架构的执行器,读取输入数据,并开始执行任务;
S5、判断该作业的所有任务是否已经全部完成,如果没有全部完成,则跳转至S1;
S6、全部完成,作业执行结束;
(2)每个机器上预设有不同的架构执行器,机器接收到任务后,分配到相应与有任务一致架构的队列上排队等待执行器执行。
2.如权利要求1所述的云环境下细粒度任务调度方法,其特征在于,步骤(1)中,对需要用户提交的作业,分配一个调度器,根据作业的架构类型,标记架构类型,并标记优先级。
3.如权利要求1所述的云环境下细粒度任务调度方法,其特征在于,步骤(2)中,预设的架构为Spark中的处理数据模型或MapReduce中的处理数据模型。
4.如权利要求1所述的云环境下细粒度任务调度方法,其特征在于,步骤(2)中,执行器真正开始执行任务,向调度器发送正在执行的信号。
5.如权利要求1所述的云环境下细粒度任务调度方法,其特征在于,步骤(2)中,若调度器中计数器达到分发的任务数,所有任务都已经执行,调度器向剩下的有预留位置的工作节点发送撤销预留位置的信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610969793.7A CN106569887B (zh) | 2016-11-04 | 2016-11-04 | 一种云环境下细粒度任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610969793.7A CN106569887B (zh) | 2016-11-04 | 2016-11-04 | 一种云环境下细粒度任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106569887A CN106569887A (zh) | 2017-04-19 |
CN106569887B true CN106569887B (zh) | 2020-04-24 |
Family
ID=58541407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610969793.7A Active CN106569887B (zh) | 2016-11-04 | 2016-11-04 | 一种云环境下细粒度任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106569887B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688500B (zh) * | 2017-07-26 | 2021-12-24 | 创新先进技术有限公司 | 一种分布式任务处理方法、装置、系统及设备 |
CN107861804A (zh) * | 2017-10-31 | 2018-03-30 | 用友金融信息技术股份有限公司 | 大数据计算方法、计算系统、计算机设备及可读存储介质 |
CN109936486B (zh) * | 2019-01-02 | 2021-11-26 | 平安科技(深圳)有限公司 | 基于区块链的自动拨测方法、装置、设备和存储介质 |
CN110046658B (zh) * | 2019-03-30 | 2021-08-20 | 华为技术服务有限公司 | 远程操作设备的方法和相关装置 |
CN110780977B (zh) * | 2019-10-25 | 2022-06-03 | 杭州安恒信息技术股份有限公司 | 基于云计算的任务下发方法、装置、系统及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197976A (zh) * | 2013-04-11 | 2013-07-10 | 华为技术有限公司 | 异构系统的任务处理方法及装置 |
CN104239135A (zh) * | 2014-05-19 | 2014-12-24 | 江苏科技大学 | 有向无环图的可重构系统的混合任务调度方法 |
CN105183561A (zh) * | 2015-09-02 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种资源分配方法和系统 |
-
2016
- 2016-11-04 CN CN201610969793.7A patent/CN106569887B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197976A (zh) * | 2013-04-11 | 2013-07-10 | 华为技术有限公司 | 异构系统的任务处理方法及装置 |
CN104239135A (zh) * | 2014-05-19 | 2014-12-24 | 江苏科技大学 | 有向无环图的可重构系统的混合任务调度方法 |
CN105183561A (zh) * | 2015-09-02 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种资源分配方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106569887A (zh) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106569887B (zh) | 一种云环境下细粒度任务调度方法 | |
US10089142B2 (en) | Dynamic task prioritization for in-memory databases | |
Goel et al. | A comparative study of cpu scheduling algorithms | |
Yadav et al. | An improved round robin scheduling algorithm for CPU scheduling | |
CN111782355B (zh) | 一种基于混合负载的云计算任务调度方法及系统 | |
CN111026519B (zh) | 基于分布式的任务优先级调度方法和系统及存储介质 | |
JP4912927B2 (ja) | タスク割当装置、及びタスク割当方法 | |
Kettimuthu et al. | Selective preemption strategies for parallel job scheduling | |
Singh et al. | Analysis and comparison of CPU scheduling algorithms | |
Ilyushkin et al. | The impact of task runtime estimate accuracy on scheduling workloads of workflows | |
CN111158875B (zh) | 基于多模块的多任务处理方法、装置及系统 | |
CN114579282A (zh) | 一种任务调度方法及装置 | |
US8539491B1 (en) | Thread scheduling in chip multithreading processors | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
EP2840513B1 (en) | Dynamic task prioritization for in-memory databases | |
CN114489807A (zh) | 在计算节点上分配对作业的处理 | |
CN110175078B (zh) | 业务处理方法及装置 | |
Liu et al. | Leveraging dependency in scheduling and preemption for high throughput in data-parallel clusters | |
Pathan | Unifying fixed-and dynamic-priority scheduling based on priority promotion and an improved ready queue management technique | |
Yamazaki et al. | Implementation and evaluation of the JobTracker initiative task scheduling on Hadoop | |
US20140282576A1 (en) | Event-driven computation | |
CN113296957A (zh) | 一种用于动态分配片上网络带宽的方法及装置 | |
Aijaz et al. | Efficient round robin algorithm (ERRA) using the average burst time | |
Seemakuthi et al. | A Review on Various Scheduling Algorithms | |
Kopanski et al. | Plan-based job scheduling for supercomputers with shared burst buffers |
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 |