CN113051064B - 任务调度方法、装置、设备及存储介质 - Google Patents

任务调度方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113051064B
CN113051064B CN201911370084.7A CN201911370084A CN113051064B CN 113051064 B CN113051064 B CN 113051064B CN 201911370084 A CN201911370084 A CN 201911370084A CN 113051064 B CN113051064 B CN 113051064B
Authority
CN
China
Prior art keywords
task
computing
resource
resources
engine
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
Application number
CN201911370084.7A
Other languages
English (en)
Other versions
CN113051064A (zh
Inventor
钱欢欢
方泽光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Shanghai ICT Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Shanghai ICT Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Shanghai ICT Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201911370084.7A priority Critical patent/CN113051064B/zh
Publication of CN113051064A publication Critical patent/CN113051064A/zh
Application granted granted Critical
Publication of CN113051064B publication Critical patent/CN113051064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例公开了一种任务调度方法、装置、设备及存储介质。该方法包括:获取至少一个任务;确定使用第一计算引擎计算至少一个任务所需的第一资源;当第一资源小于或等于系统的剩余计算资源时,配置使用第一计算引擎计算至少一个任务。本发明实施例的任务调度方法、装置、设备及存储介质,可以通过比较系统剩余资源及同一时间段内的任务以不同计算方式运行所需的资源关系,进行资源的分配,在资源充足的情况下优先使用第一计算引擎执行计算任务,在资源短缺的情况下降级使用第二计算引擎执行计算任务,尽可能多的并行运行任务,减少等待资源时间,提高了资源的利用率与运行效率。

Description

任务调度方法、装置、设备及存储介质
技术领域
本发明涉及大数据任务处理领域,尤其涉及一种任务调度方法、装置、设备及存储介质。
背景技术
现有大部分的大数据处理平台采用Yarn对应用进行资源(资源指的是CPU核数和内存大小)的分配和调用。
目前的调度器主要有先入先出队列(First Input First Output,FIFO)调度器,容量(Capacity)调度器以及公平(Fair)调度器,Capacity调度器能够以队列为单位划分资源,可为每个队列设置资源最低量和资源使用上限,所有提交到该队列的应用程序共享该队列中的资源,而且当一个队列的资源有剩余时,可暂时将剩余资源共享给其他队列,可以很好的将公司的各个部门和业务进行划分,提高了资源的利用率,所以一般采用Capacity调度器。现有技术普遍采用Capacity调度器,并在Yarn上搭建应用比较广泛的Hive和SparkSQL两种数据仓库工具进行运行。
Hive查询申请需要的计算资源相对较少但是计算偏慢,SparkSQL速度是Hive查询引擎的数倍以上,同时需要的计算资源也是Hive的几倍甚至更多。
现有的方案采用SparkSQL做计算引擎或Hive来做计算引擎,无法做到合理进行任务处理,且处理效率低下,资源利用不合理。
发明内容
本发明实施例提供了一种任务调度方法、装置、设备及存储介质,通过比较系统剩余资源及同一时间段内的任务以不同计算方式运行所需的资源关系,进行资源的分配,在资源充足的情况下优先使用第一计算引擎执行计算任务,在资源短缺的情况下降级使用第二计算引擎执行计算任务,尽可能多的并行运行任务,减少等待资源时间,提高了资源的利用率与运行效率。
第一方面,提供了一种任务调度方法,应用于系统,该方法包括:
获取至少一个任务;
确定使用第一计算引擎计算至少一个任务所需的第一资源,其中,所述第一计算引擎用于在进行计算时达到预设计算速度;
当第一资源小于或等于系统的剩余计算资源时,配置使用第一计算引擎计算至少一个任务。
在第一方面的一些实现方式中,至少一个任务中的每一个任务包括优先级标识,优先级标识用于标识任务的优先级;
当第一资源大于系统的剩余计算资源时,根据至少一个任务的优先级标识确定至少一个任务中优先级最高的任务,确定使用第二计算引擎计算所述优先级最高的任务所需的第二资源,其中,所述第二计算引擎用于在进行计算时使用小于预设值的资源;
当第二资源小于或等于系统的剩余计算资源时,配置使用第二计算引擎计算优先级最高的任务。
在第一方面的一些实现方式中,
当第二资源大于系统的剩余计算资源时,确定使用第一计算引擎计算至少一个任务所需的第一资源,用于配置对应的计算引擎。
在第一方面的一些实现方式中,
在配置使用第一计算引擎计算至少一个任务之后,或者在配置使用第二计算引擎计算至少一个任务中优先级最高的任务之后,还包括:
将至少一个任务或者至少一个任务中优先级最高的任务存储到系统的优先级运行池中。
在第一方面的一些实现方式中,还包括:
按照第一预设周期将存储在优先级运行池中的至少一个任务发送到资源管理器,以用于资源管理器根据至少一个任务的优先级标识,配置第一计算引擎和/或第二计算引擎计算至少一个任务中的每一个任务。
在第一方面的一些实现方式中,还包括:
确定获取的任务是否全部计算完成;
若获取的任务全部计算完成,则确定是否接收到退出计算指令;
当接收到退出计算指令时,退出计算。
在第一方面的一些实现方式中,还包括:
若至少一个任务未全部计算完成,则确定至少一个任务中未完成计算的任务,确定使用第一计算引擎计算至少一个任务中还未完成计算的任务所需的资源,用于配置对应的计算引擎。
在第一方面的一些实现方式中,还包括:
当未接收到退出计算指令时,重新获取至少一个任务。
在第一方面的一些实现方式中,第一计算引擎包括SparkSql计算引擎。
在第一方面的一些实现方式中,第二计算引擎包括Hive计算引擎。
第二方面,提供了一种任务调度装置,该装置包括:
获取模块,用于获取至少一个任务;
处理模块,用于确定使用第一计算引擎计算至少一个任务所需的第一资源,其中,所述第一计算引擎用于在进行计算时达到预设计算速度;
处理模块,还用于当第一资源小于或等于系统的剩余计算资源时,配置使用第一计算引擎计算至少一个任务。
在第二方面的一些实现方式中,
至少一个任务中的每一个任务包括优先级标识,优先级标识用于标识任务的优先级;
处理模块,还用于当第一资源大于系统的剩余计算资源时,根据至少一个任务的优先级标识确定至少一个任务中优先级最高的任务,确定使用第二计算引擎计算所述优先级最高的任务所需的第二资源,其中,所述第二计算引擎用于在进行计算时使用小于预设值的资源;
处理模块,还用于当第二资源小于或等于系统的剩余计算资源时,配置使用第二计算引擎计算优先级最高的任务。
在第二方面的一些实现方式中,
处理模块,还用于当第二资源大于系统的剩余计算资源时,确定使用第一计算引擎计算至少一个任务所需的第一资源,用于配置对应的计算引擎。
在第二方面的一些实现方式中,
处理模块,还用于在配置使用第一计算引擎计算至少一个任务之后,或者在配置使用第二计算引擎计算至少一个任务中优先级最高的任务之后,将至少一个任务或者至少一个任务中优先级最高的任务存储到系统的优先级运行池中。
在第二方面的一些实现方式中,处理模块,还用于按照第一预设周期将存储在优先级运行池中的至少一个任务发送到资源管理器,以用于资源管理器根据至少一个任务的优先级标识,配置第一计算引擎和/或第二计算引擎计算至少一个任务中的每一个任务。
在第二方面的一些实现方式中,处理模块,还用于确定获取的任务是否全部计算完成;若获取的任务全部计算完成,则确定是否接收到退出计算指令;当接收到退出计算指令时,退出计算。
在第二方面的一些实现方式中,处理模块,还用于若还有至少一个任务未全部计算完成,则确定至少一个任务中未完成计算的任务,确定使用第一计算引擎计算至少一个任务中还未完成计算的任务所需的资源,用于配置对应的计算引擎。
在第二方面的一些实现方式中,处理模块,还用于当未接收到退出计算指令时,获取待计算的至少一个任务。
在第二方面的一些实现方式中,第一计算引擎包括SparkSql计算引擎。
在第二方面的一些实现方式中,第二计算引擎包括Hive计算引擎。
第三方面,提供了一种任务调度设备,该设备包括:
处理器以及存储有计算机程序指令的存储器;
处理器执行计算机指令时实现第一方面,以及第一方面的一些实现方式中的任务调度方法。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令被处理器执行时实现第一方面,以及第一方面的一些实现方式中的任务调度方法。
本发明实施例提供了一种任务调度方法、装置、设备及存储介质,通过比较系统剩余资源及同一时间段内的任务以不同运行方式运行所需的资源关系,进行资源的分配,在资源充足的情况下优先使用第一计算引擎执行计算任务,在资源短缺的情况下降级使用第二计算引擎执行计算任务,尽可能多的并行运行任务,减少等待资源时间,提高了资源的利用率与运行效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种Capacity调度器对资源划分的队列架构图;
图2是本发明实施例提供的一种任务调度方法的流程示意图;
图3是本发明实施例提供的一种任务调度的信息交互示意图;
图4是本发明实施例提供的一种优先级运行池向资源管理器Yarn发送任务的示意图;
图5是本发明实施例提供的一种任务调度的装置的结构示意图;
图6是本发明实施例的提供的一种计算设备的示例性硬件架构的结构图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
现有的技术方案在使用资源管理器Yarn对CPU核数和内存大小进行分配和调用时,可以使用的调度器有FIFO调度器、Fair调度器、Capacity调度器。因为Capacity调度器可以以队列为单位对资源进行划分,而且可以为每个队列设置资源最低量和资源使用上限,且当一个队列的资源有剩余时,可暂时将剩余资源共享给其他队列,资源利用率比较高,故,目前主要使用Capacity调度器对资源进行调用和分配。现有的方案中,Capacity调度器对资源划分队列,可以做到核心任务放在核心队列里运行并给与充足的资源,但这是一个人为控制的优先级,且不能对每个队列里的任务进行优先级设置。对于没有优先级的任务很难在运行时合理利用资源,且在同一队列中都是先到先得,这可能导致有些临时的核心任务得不到优先处理。而且现有技术在采用SparkSQL做计算引擎或Hive来做计算引擎时,无法针对目前的任务情况合理调用SparkSQL计算引擎或Hive计算引擎进行计算。所以,如何在有限的资源下既能让核心的任务优先处理,又能让常规任务尽可能多的并发运行,并提高资源利用率成为目前待解决的问题。
为了解决现有技术中存在的有限的资源下既能让核心的任务优先处理,又可以让常规任务尽可能多的并发运行,以提高资源利用率的问题,本发明实施例提供了一种任务调度方法、装置、设备及存储介质。本发明实施例的技术方案通过对任务设置优先级,比较系统剩余资源及同一时间段内的任务以不同运行方式运行所需的资源关系,进行资源的分配,在资源充足的情况下优先使用SparkSQL执行计算任务,在资源短缺的情况下降级使用Hive执行计算任务,尽可能多的并行运行任务,减少等待资源时间,提高了资源的利用率与运行效率。
下面结合附图对本发明实施例进行描述。
图1是本发明实施例提供的一种Capacity调度器对资源划分的队列架构图。
如图1所示,按照任务的重要性将资源划分为:核心core队列,重要important队列以及正常normal队列。此外可能由于业务需求的变更,回溯历史的任务也占了相当大的比重,因此可以设计回溯backtrack队列针对回溯数据的任务。因为回溯的任务重要性也有区别,所以backtrack队列也按照任务的重要性将该队列划分为core,important以及normal队列。
核心任务的计算时效性要求最高,不得延误,但是任务数量比重相对较小。所以可以给核心(core)队列设置30%资源,用于计算核心任务。例如:高管日报,周报,各节假日临时活动数据,套餐流量话费主要业务的数据分析。
重要任务的计算时效性要求次高,所以尽量不延误,而且任务数量比重最大。所以可以给重要(important)队列设置40%资源,用于计算重要任务。例如:用户行为分析一系列的数据。
一般任务的计算时效性要求不高,而且任务数量比重较小。所以可以给正常(normal)队列设置15%的资源,用于计算一般任务。例如:一些即将废弃和不太重要的业务。
由于一些数据计算任务上线之前,会回溯半年,一年或将近几年的数据,并发性高,所以可以给backtrack队列设置15%资源。backtrack队列又可以根据回溯任务重要性分core,important,normal子队列,相对应的core子队列可以占backtrack队列的30%资源,important子队列可以占backtrack队列的40%资源,normal子队列可以占backtrack队列的30%资源。
具体的,在确定任务用SparkSql或Hive计算引擎计算所需的资源前,可以先给任务按照时效性及数量等特性设置好队列标签(核心core队列,重要important队列,正常normal队列,回溯backtrack队列),再对任务设置执行优先级标识(高high、中medium、低low),用以确定任务用SparkSql或Hive计算引擎计算所需的资源。而且根据不同部门不同业务将系统资源进行队列的划分,也使各种类型任务尽可能达到稳定运行。
下面结合图2和图3对本发明实施例提供的任务调度方法进行描述。
图2示出了本发明实施例提供的一种任务调度方法的流程示意图。
图3示出了本发明实施例提供的一种任务调度的信息交互示意图。
任务调度方法可以包括:
S201:获取至少一个任务。
其中,至少一个任务中的每一个任务可以包括优先级标识,该优先级标识(high、medium或low)用于标识任务的优先级顺序。
具体的,可以从待处理的任务库中,获取(拉取)一批任务,根据任务中的优先级标识,对获取到的数据按照优先级从高到底的顺序进行排列,以用于按照顺序,进行资源询问,即,S202。
S202:确定使用第一计算引擎计算至少一个任务所需的第一资源。
其中,第一计算引擎用于在进行计算时达到预设计算速度。
具体的,可以计算已经获取的这批任务使用SparkSql计算引擎(其中,SparkSql计算引擎也可以称为第一计算引擎)进行计算所需要的资源(第一资源),以确定要配置的计算引擎模式,即,S203。
S203:当第一资源小于或等于系统的剩余计算资源时,配置使用第一计算引擎计算至少一个任务。
具体的,判断获取的这一批任务中,还未配置运行模式的剩余任务使用SparkSql计算引擎进行计算所需要的资源(第一资源)与系统的剩余计算资源或队列剩余资源的关系。
当该剩余任务使用SparkSql计算引擎进行计算所需要的资源(第一资源)小于或等于系统的剩余计算资源或队列剩余资源时,说明系统的剩余计算资源或队列剩余资源较多,可以将剩余任务全部配置SparkSql计算引擎模式。然后将配置SparkSql计算引擎模式的任务发送到优先级运行池,等待提交至资源管理器Yarn的信号。
如果当该剩余任务使用SparkSql计算引擎进行计算所需要的资源大于系统的剩余计算资源或队列剩余资源时,则说明系统的剩余计算资源或队列剩余资源不足以使剩余任务全部以SparkSql计算引擎模式运行。
此时,可以判断剩余任务中优先级顺序最高的任务,使用Hive计算引擎(其中,Hive计算引擎也可以称为第二计算引擎,第二计算引擎用于在进行计算时使用小于预设值的资源)进行计算所需的第二资源与系统的剩余计算资源或队列剩余资源的关系。其中,可以根据剩余任务中每个任务的优先级标识确定至少一个优先级顺序最高的任务,优先级顺序最高的任务也可以认为是头部任务。
具体的,当至少一个优先级顺序最高的任务,使用Hive计算引擎计算所需的资源小于或等于系统的剩余计算资源时,说明系统的剩余计算资源或队列剩余资源足以使剩余任务中至少一个优先级顺序最高的任务以SparkSql计算引擎模式运行。则将至少一个优先级顺序最高的任务弹出判断过程,并配置Hive计算引擎模式,然后将配置Hive计算引擎模式的任务发送到优先级运行池,等待提交至资源管理器Yarn的信号。
当至少一个优先级顺序最高的任务,使用Hive计算引擎计算所需的资源大于系统的剩余计算资源时,说明系统的剩余资源连至少一个优先级顺序最高的任务以Hive计算引擎模式进行计算所需的资源都不够,进入等待资源。
具体的,在等待资源时,可以按照预设频率询问目前系统的剩余资源或队列剩余资源情况,即,资源询问。
一旦有新的资源释放,即,系统的剩余资源或队列剩余资源有更新,则重新判断剩余任务使用SparkSql计算引擎计算所需的资源与目前系统的剩余资源或队列剩余资源的关系。如果更新后的系统的剩余资源或队列剩余资源满足剩余任务使用SparkSql计算引擎计算所需的资源,则将剩余任务配置SparkSql计算引擎模式,并将配置SparkSql计算引擎模式的剩余任务发送到优先级运行池,等待提交至资源管理器Yarn的信号。
若更新后的系统的剩余资源或队列剩余资源不满足剩余任务使用SparkSql计算引擎进行计算所需的资源,说明更新后的资源还是不够剩余任务全部使用SparkSql计算引擎进行计算。则重新判断剩余任务中至少一个优先级顺序最高的任务使用Hive计算引擎计算所需的资源与更新后的系统的剩余资源或队列剩余资源的关系。
如果剩余任务中至少一个优先级顺序最高的任务使用Hive计算引擎计算所需的资源小于或等于更新后的系统的剩余资源或队列剩余资源,则将该至少一个优先级顺序最高的任务弹出,并配置Hive计算引擎模式,然后将配置Hive计算引擎模式的任务发送到优先级运行池,等待提交至资源管理器Yarn的信号。
如果剩余任务中至少一个优先级顺序最高的任务使用Hive计算引擎计算所需的资源大于更新后的系统的剩余资源或队列剩余资源,则重新进入等待资源,等待系统的剩余资源或队列剩余资源再次更新后,进行资源询问过程。
具体的,在将配置SparkSql计算引擎模式的任务发送到优先级运行池或将配置Hive计算引擎模式的任务发送到优先级运行池后,因为进入优先级运行池的任务已经包括计算引擎信息(SparkSql或Hive)和优先级标识(high、medium或low),所以,此时的任务具有包括计算引擎信息和优先级标识的任务发送标识信息。在优先级运行池内,按照任务发送标识信息排序,并按照这个顺序向资源管理器Yarn发送任务,按照任务发送标识信息排序后的顺序从高到低可以为spark high、spark medium、spark low、hive high、hivemedium、hive low。如图4所示,可以将优先级运行池里存储的至少一个任务或者至少一个任务中优先级顺序最高的任务按照第一预设周期(可以为一个预设的机器时钟频率,例如每隔10秒提交一次任务)及任务发送标识信息确定的顺序,向资源管理器Yarn提交存储的任务。
图4中还详细的示出了优先级运行池里存储的4个任务向资源管理器Yarn提交的过程,根据该任务发送标识信息确定的发送顺序,从高到低可以分别为spark high、sparkmedium、spark low、hive high、hive medium、hive low。同一等级先到先得,即,同一任务发送标识信息的任务,先进入优先级运行池的可以先发送给资源管理器。进入优先级运行池里的4个任务可以按照预设发送顺序从高到低排列为spark high、spark low、hivehigh、hive low,按照预设顺序和第一预设周期,优先级运行池向资源管理器可以先发送任务1(spark high),再发送任务2(spark low),然后再发送任务3(hive high),最后发送任务4(hive low)。资源管理器则根据接收到的任务顺序,首先将任务1(spark high)配置SparkSql计算引擎进行计算,再将任务2(spark low)配置SparkSql计算引擎进行计算,然后再将任务3(hive high)配置Hive计算引擎进行计算,最后将任务4(hive low)配置Hive计算引擎进行计算,将存储在优先级运行池里的任务按照任务发送标识信息(包括计算引擎信息和优先级标识)依次选择计算引擎进行计算。实现尽可能多的并行运行任务,减少了等待资源时间,提高了资源利用率与运行效率。
在任务按照标识信息配置计算引擎并进入优先级运行池后,或,已经进入计算引擎进行计算后,还可以判断是否还有剩余任务没有配置计算引擎。
若获取的任务已经全部配置计算引擎,没有剩余任务了,则确定是否接收到退出指令。若未接收到退出计算指令或接收到不退出指令时,则获取另一批任务,重新进行资源询问和计算引擎的配置过程。
若还有剩余任务未配置计算引擎,则重新进入资源询问过程,即,判断剩余任务使用SparkSql计算引擎进行计算所需的资源与系统的剩余资源或队列剩余资源的关系,或,确定剩余任务中优先级最高的任务使用Hive计算引擎计算所需的资源,并根据该关系配置SparkSql计算引擎模式或Hive计算引擎模式。
其中,系统剩余资源或队列剩余资源可以=队列空闲资源-优先级运行池任务资源总和,以用于在计算系统剩余资源或队列剩余资源,根据系统剩余资源或队列剩余资源配置相应的计算引擎模式。
本发明实施例提供的任务调度方法,通过对任务设置优先级,比较系统剩余资源及同一时间段内的任务以不同计算方式运行所需的资源关系,进行资源的分配,在资源充足的情况下优先使用SparkSQL执行计算任务,在资源短缺的情况下降级使用Hive执行计算任务,尽可能多的并行运行任务,减少等待资源时间,提高了资源的利用率与运行效率。
与任务调度方法的实施例相对应,本发明实施例还提供了一种任务调度的装置。
如图5所示,图5示出了本发明实施例提供的一种任务调度的装置的结构示意图。
任务调度的装置可以包括:获取模块501和处理模块502,其中,
获取模块501,用于获取至少一个任务;
处理模块502,用于确定使用第一计算引擎计算至少一个任务所需的第一资源,其中,所述第一计算引擎用于在进行计算时达到预设计算速度;
处理模块502,还用于当第一资源小于或等于系统的剩余计算资源时,配置使用第一计算引擎计算至少一个任务。
该至少一个任务中的每一个任务包括优先级标识,优先级标识用于标识任务的优先级顺序;
处理模块502,还用于当第一资源大于系统的剩余计算资源时,根据至少一个任务的优先级标识确定至少一个任务中优先级最高的任务,确定使用第二计算引擎计算所述优先级最高的任务所需的第二资源,其中,所述第二计算引擎用于在进行计算时使用小于预设值的资源;
处理模块502,还用于当第二资源小于或等于系统的剩余计算资源时,配置使用第二计算引擎计算优先级最高的任务。
处理模块502,还用于当第二资源大于系统的剩余计算资源时,确定使用第一计算引擎计算至少一个任务所需的第一资源,用于配置对应的计算引擎。
处理模块502,还用于在配置使用第一计算引擎计算至少一个任务之后,或者在配置使用第二计算引擎计算至少一个任务中优先级最高的任务之后,将至少一个任务或者至少一个任务中优先级最高的任务存储到系统的优先级运行池中。
处理模块502,还用于按照第一预设周期将存储在优先级运行池中的至少一个任务发送到资源管理器,以用于资源管理器根据至少一个任务的优先级标识,配置第一计算引擎和/或第二计算引擎计算至少一个任务中的每一个任务。
处理模块502,还用于确定获取的任务是否全部计算完成;若获取的任务全部计算完成,则确定是否接收到退出计算指令;当接收到退出计算指令时,退出计算。
处理模块502,还用于若还有至少一个任务还未全部计算完成,则确定至少一个任务中未完成计算的任务,确定使用第一计算引擎计算至少一个任务中还未完成计算的任务所需的资源,用于配置对应的计算引擎。
处理模块502,还用于当未接收到退出计算指令时,获取待计算的至少一个任务。
其中,第一计算引擎可以包括SparkSql计算引擎,第二计算引擎可以包括Hive计算引擎。
本发明实施例提供的任务调度装置,通过对任务设置优先级,比较系统剩余资源及同一时间段内的任务以不同计算方式运行所需的资源关系,进行资源的分配,在资源充足的情况下优先使用SparkSQL执行计算任务,在资源短缺的情况下降级使用Hive执行计算任务,尽可能多的并行运行任务,减少等待资源时间,提高了资源的利用率与运行效率。
图6示出了能够实现根据本发明实施例的任务调度方法的计算设备的示例性硬件架构的结构图。如图6所示,计算设备600包括输入设备601、输入接口602、中央处理器603、存储器604、输出接口605、以及输出设备606。其中,输入接口602、中央处理器603、存储器604、以及输出接口605通过总线610相互连接,输入设备601和输出设备606分别通过输入接口602和输出接口605与总线610连接,进而与计算设备600的其他组件连接。
具体地,输入设备601接收来自外部的输入信息,并通过输入接口602将输入信息传送到中央处理器603;中央处理器603基于存储器604中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器604中,然后通过输出接口605将输出信息传送到输出设备606;输出设备606将输出信息输出到计算设备600的外部供用户使用。
也就是说,图6所示的计算设备也可以被实现为任务调度的设备,该任务调度的设备可以包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机指令时可以实现图2和图3所示实施例提供的任务调度方法。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现图2和图3所示实施例提供的任务调度方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

Claims (12)

1.一种任务调度方法,其特征在于,应用于系统,所述方法包括:
获取至少一个任务;
确定使用第一计算引擎计算所述至少一个任务所需的第一资源,其中,所述第一计算引擎用于在进行计算时达到预设计算速度;
当所述第一资源小于或等于所述系统的剩余计算资源时,配置使用所述第一计算引擎计算所述至少一个任务;
所述至少一个任务中的每一个任务包括优先级标识,所述优先级标识用于标识任务的优先级;
当所述第一资源大于所述系统的剩余计算资源时,根据所述至少一个任务的优先级标识确定所述至少一个任务中优先级最高的任务,确定使用第二计算引擎计算所述优先级最高的任务所需的第二资源,其中,所述第二计算引擎用于在进行计算时使用小于预设值的资源;
当所述第二资源小于或等于所述系统的剩余计算资源时,配置使用所述第二计算引擎计算所述优先级最高的任务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第二资源大于所述系统的剩余计算资源时,确定使用所述第一计算引擎计算所述至少一个任务所需的第一资源,用于配置与所述至少一个任务对应的计算引擎。
3.根据权利要求1至2任一项所述的方法,其特征在于,在所述配置使用所述第一计算引擎计算所述至少一个任务之后,或者在配置使用第二计算引擎计算所述至少一个任务中优先级最高的任务之后,所述方法还包括:
将所述至少一个任务或者所述至少一个任务中优先级最高的任务存储到所述系统的优先级运行池中。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
按照第一预设周期将存储在所述优先级运行池中的至少一个任务发送到资源管理器,以用于所述资源管理器根据所述至少一个任务的优先级标识,配置所述第一计算引擎和/或所述第二计算引擎计算所述至少一个任务中的每一个任务。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
确定获取的任务是否全部计算完成;
若所述获取的任务全部计算完成,则确定是否接收到退出计算指令;
当接收到退出计算指令时,退出计算。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述至少一个任务未全部计算完成,则确定所述至少一个任务中未完成计算的任务,确定使用所述第一计算引擎计算所述至少一个任务中未完成计算的任务所需的资源,用于配置与所述未完成计算的任务对应的计算引擎。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
当未接收到退出计算指令时,重新获取至少一个任务。
8.根据权利要求1所述的方法,其特征在于,所述第一计算引擎包括SparkSql计算引擎。
9.根据权利要求1或8所述的方法,其特征在于,所述第二计算引擎包括Hive计算引擎。
10.一种任务调度装置,其特征在于,所述装置包括:
获取模块,用于获取至少一个任务;
处理模块,用于确定使用第一计算引擎计算所述至少一个任务所需的第一资源;
所述处理模块,还用于当所述第一资源小于或等于系统的剩余计算资源时,配置使用所述第一计算引擎计算所述至少一个任务;
所述至少一个任务中的每一个任务包括优先级标识,所述优先级标识用于标识任务的优先级;
确定模块,用于当所述第一资源大于所述系统的剩余计算资源时,根据所述至少一个任务的优先级标识确定所述至少一个任务中优先级最高的任务,确定使用第二计算引擎计算所述优先级最高的任务所需的第二资源,其中,所述第二计算引擎用于在进行计算时使用小于预设值的资源;
配置模块,用于当所述第二资源小于或等于所述系统的剩余计算资源时,配置使用所述第二计算引擎计算所述优先级最高的任务。
11.一种任务调度设备,其特征在于,所述设备包括:
处理器以及存储有计算机指令的存储器;
所述处理器执行所述计算机指令时实现如权利要求1-9任意一项所述的任务调度方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-9任意一项所述的任务调度方法。
CN201911370084.7A 2019-12-26 2019-12-26 任务调度方法、装置、设备及存储介质 Active CN113051064B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911370084.7A CN113051064B (zh) 2019-12-26 2019-12-26 任务调度方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911370084.7A CN113051064B (zh) 2019-12-26 2019-12-26 任务调度方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113051064A CN113051064A (zh) 2021-06-29
CN113051064B true CN113051064B (zh) 2024-05-24

Family

ID=76505657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911370084.7A Active CN113051064B (zh) 2019-12-26 2019-12-26 任务调度方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113051064B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535361A (zh) * 2021-07-23 2021-10-22 百果园技术(新加坡)有限公司 任务调度方法、装置、设备及存储介质
CN114168302A (zh) * 2021-12-28 2022-03-11 中国建设银行股份有限公司 任务调度方法、装置、设备及存储介质

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179321A (zh) * 2007-12-13 2008-05-14 北京卫星信息工程研究所 一种卫星通信系统实现无线资源管理的方法
CN101743534A (zh) * 2007-07-16 2010-06-16 微软公司 通过增长和收缩资源分配来进行调度
CN103699445A (zh) * 2013-12-19 2014-04-02 北京奇艺世纪科技有限公司 一种任务调度方法、装置及系统
CN104991830A (zh) * 2015-07-10 2015-10-21 山东大学 基于服务等级协议的yarn资源分配和节能调度方法及系统
CN107861804A (zh) * 2017-10-31 2018-03-30 用友金融信息技术股份有限公司 大数据计算方法、计算系统、计算机设备及可读存储介质
CN107944004A (zh) * 2017-12-07 2018-04-20 深圳乐信软件技术有限公司 Spark‑SQL调度的方法、系统、设备及存储介质
CN108089920A (zh) * 2016-11-23 2018-05-29 华为技术有限公司 一种数据处理的方法、装置和系统
CN108549683A (zh) * 2018-04-03 2018-09-18 联想(北京)有限公司 数据查询方法以及系统
CN108604193A (zh) * 2016-10-27 2018-09-28 华为技术有限公司 异构系统、计算任务分配方法及装置
CN108769254A (zh) * 2018-06-25 2018-11-06 星环信息科技(上海)有限公司 基于抢占式调度的资源共享使用方法、系统及设备
CN109408215A (zh) * 2018-11-07 2019-03-01 郑州云海信息技术有限公司 一种计算节点的任务调度方法和装置
CN109471705A (zh) * 2017-09-08 2019-03-15 杭州海康威视数字技术股份有限公司 任务调度的方法、设备及系统、计算机设备
CN109471727A (zh) * 2018-10-29 2019-03-15 北京金山云网络技术有限公司 一种任务处理方法、装置及系统
CN109739649A (zh) * 2018-12-28 2019-05-10 深圳前海微众银行股份有限公司 资源管理方法、装置、设备及计算机可读存储介质
CN109902101A (zh) * 2019-02-18 2019-06-18 国家计算机网络与信息安全管理中心 基于SparkSQL的透明分区方法及装置
CN109992403A (zh) * 2017-12-30 2019-07-09 中国移动通信集团福建有限公司 多租户资源调度的优化方法、装置、终端设备及存储介质
CN110351384A (zh) * 2019-07-19 2019-10-18 深圳前海微众银行股份有限公司 大数据平台资源管理方法、装置、设备及可读存储介质
CN110362392A (zh) * 2019-07-15 2019-10-22 深圳乐信软件技术有限公司 一种etl任务调度方法、系统、设备及存储介质
CN110381143A (zh) * 2019-07-19 2019-10-25 深圳前海微众银行股份有限公司 作业提交执行方法、装置、设备及计算机存储介质
CN110457130A (zh) * 2019-07-24 2019-11-15 广东工业大学 一种分布式资源弹性调度模型、方法、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10572306B2 (en) * 2016-09-14 2020-02-25 Cloudera, Inc. Utilization-aware resource scheduling in a distributed computing cluster
CN107885595B (zh) * 2016-09-30 2021-12-14 华为技术有限公司 一种资源分配方法、相关设备及系统

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101743534A (zh) * 2007-07-16 2010-06-16 微软公司 通过增长和收缩资源分配来进行调度
CN101179321A (zh) * 2007-12-13 2008-05-14 北京卫星信息工程研究所 一种卫星通信系统实现无线资源管理的方法
CN103699445A (zh) * 2013-12-19 2014-04-02 北京奇艺世纪科技有限公司 一种任务调度方法、装置及系统
CN104991830A (zh) * 2015-07-10 2015-10-21 山东大学 基于服务等级协议的yarn资源分配和节能调度方法及系统
CN108604193A (zh) * 2016-10-27 2018-09-28 华为技术有限公司 异构系统、计算任务分配方法及装置
CN108089920A (zh) * 2016-11-23 2018-05-29 华为技术有限公司 一种数据处理的方法、装置和系统
CN109471705A (zh) * 2017-09-08 2019-03-15 杭州海康威视数字技术股份有限公司 任务调度的方法、设备及系统、计算机设备
CN107861804A (zh) * 2017-10-31 2018-03-30 用友金融信息技术股份有限公司 大数据计算方法、计算系统、计算机设备及可读存储介质
CN107944004A (zh) * 2017-12-07 2018-04-20 深圳乐信软件技术有限公司 Spark‑SQL调度的方法、系统、设备及存储介质
CN109992403A (zh) * 2017-12-30 2019-07-09 中国移动通信集团福建有限公司 多租户资源调度的优化方法、装置、终端设备及存储介质
CN108549683A (zh) * 2018-04-03 2018-09-18 联想(北京)有限公司 数据查询方法以及系统
CN108769254A (zh) * 2018-06-25 2018-11-06 星环信息科技(上海)有限公司 基于抢占式调度的资源共享使用方法、系统及设备
CN109471727A (zh) * 2018-10-29 2019-03-15 北京金山云网络技术有限公司 一种任务处理方法、装置及系统
CN109408215A (zh) * 2018-11-07 2019-03-01 郑州云海信息技术有限公司 一种计算节点的任务调度方法和装置
CN109739649A (zh) * 2018-12-28 2019-05-10 深圳前海微众银行股份有限公司 资源管理方法、装置、设备及计算机可读存储介质
CN109902101A (zh) * 2019-02-18 2019-06-18 国家计算机网络与信息安全管理中心 基于SparkSQL的透明分区方法及装置
CN110362392A (zh) * 2019-07-15 2019-10-22 深圳乐信软件技术有限公司 一种etl任务调度方法、系统、设备及存储介质
CN110351384A (zh) * 2019-07-19 2019-10-18 深圳前海微众银行股份有限公司 大数据平台资源管理方法、装置、设备及可读存储介质
CN110381143A (zh) * 2019-07-19 2019-10-25 深圳前海微众银行股份有限公司 作业提交执行方法、装置、设备及计算机存储介质
CN110457130A (zh) * 2019-07-24 2019-11-15 广东工业大学 一种分布式资源弹性调度模型、方法、电子设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"H-Scheduler: Storage-Aware Task Scheduling for Heterogeneous-Storage Spark Clusters";Fengfeng Pan et al;《2018 IEEE 24th International Conference on Parallel and Distributed Systems (ICPADS)》;20190221;全文 *
一种基于Spark在线Web服务的高效低延迟调度资源算法;丁晶晶;张功萱;;计算机工程与科学;20160815(08);全文 *
基于计算资源运行时剩余能力评估优化云平台;周墨颂;董小社;陈衡;张兴军;;计算机研究与发展;20171115(11);全文 *

Also Published As

Publication number Publication date
CN113051064A (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
Bao et al. Online job scheduling in distributed machine learning clusters
Van Tilborg et al. Foundations of real-time computing: Scheduling and resource management
US9367357B2 (en) Simultaneous scheduling of processes and offloading computation on many-core coprocessors
US7076781B2 (en) Resource reservation for large-scale job scheduling
CN111258745B (zh) 一种任务处理方法及设备
US8843929B1 (en) Scheduling in computer clusters
WO2009014868A2 (en) Scheduling threads in multi-core systems
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
CN113051064B (zh) 任务调度方法、装置、设备及存储介质
US7920282B2 (en) Job preempt set generation for resource management
CN112395067A (zh) 任务调度方法、系统、设备及介质
Omar et al. Comparative analysis of the essential CPU scheduling algorithms
CN109327321B (zh) 网络模型业务执行方法、装置、sdn控制器及可读存储介质
Glazebrook et al. On the optimal allocation of service to impatient tasks
CN112860387A (zh) 分布式任务调度方法、装置、计算机设备及存储介质
Stavrinides et al. Cost-effective utilization of complementary cloud resources for the scheduling of real-time workflow applications in a fog environment
CN115033357A (zh) 基于动态资源选择策略的微服务工作流调度方法及装置
CN106407007B (zh) 面向弹性分析流程的云资源配置优化方法
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
Stavrinides et al. Security and cost aware scheduling of real-time IoT workflows in a mist computing environment
CA2631255A1 (en) Scalable scheduling of tasks in heterogeneous systems
Racu et al. Improved response time analysis of tasks scheduled under preemptive round-robin
CN106534312B (zh) 一种面向移动设备的服务请求选择与调度方法
Horowitz A run-time execution model for referential integrity maintenance
CN113301087A (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