CN106557363A - 一种大数据任务调度的***以及方法 - Google Patents
一种大数据任务调度的***以及方法 Download PDFInfo
- Publication number
- CN106557363A CN106557363A CN201611102737.XA CN201611102737A CN106557363A CN 106557363 A CN106557363 A CN 106557363A CN 201611102737 A CN201611102737 A CN 201611102737A CN 106557363 A CN106557363 A CN 106557363A
- Authority
- CN
- China
- Prior art keywords
- task
- configuration
- scheduling
- run
- node
- 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.)
- Pending
Links
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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种大数据任务调度的***以及方法,通过任务配置模块获取任务配置指令,根据任务配置指令配置任务参数;任务调度中心节点根据任务参数生成可执行任务,统计任务运行节点以及数据源上运行的任务数量,根据任务数量以及预设阈值,控制任务的并发度,使任务数量小于所述预设阈值;在任务的并发度在预设阈值范围内且满足依赖时,进行任务分发,任务运行节点运行任务调度中心节点分发的可执行任务。统计得出当前任务的并发度,判断运行的任务数量是否超出预设阈值,确定是否继续下发可执行任务,避免同时运行的任务数量过多,从而导致***负载过高。可见,本申请对大数据任务的并发度进行控制,保证了大数据任务的运行效率。
Description
技术领域
本发明涉及大数据领域,特别是涉及一种大数据任务调度的***以及方法。
背景技术
随着互联网技术以及信息技术的发展,大量的信息被数据化,产生了无法用常规工具捕捉、管理和处理的数海量数据集合,这种数据集合也称为大数据。
大数据具有海量的数据规模以及多样的数据类型,使用大数据***来对大数据进行加工处理,挖掘出海量数据的数据价值。为了更好地对大数据进行处理分析,可以对大数据的处理任务进行相应的调度,保证大数据任务的高效运行。
大数据***包括用于调度大数据任务的任务调度***,现有的大数据任务调度***一般是基于工作流来管理任务。通过设置任务之间的依赖关系,构建任务的有向无环图模型,以完成对大数据任务的调度管理。现有技术中的大数据任务调度***没有提供任务的并发度控制,任务的并发度可以是指同时运行的任务数量。由于没有提供任务的并发度控制,可能会使得同时运行的任务过多,导致***负载过高,从而降低任务运行的效率,或者是大量的任务被堆积。如何避免***的负载过高,提高大数据任务的运行效率是本领域亟待解决的问题。
发明内容
本发明的目的是提供一种大数据任务调度的***,目的在于解决现有技术中***负载过高从而导致大数据任务的运行效率较低的问题;本发明的另一目的是提供一种大数据任务调度的方法,其控制大数据任务的并发度,使得大数据任务的运行效率较高。
为解决上述技术问题,本发明提供一种大数据任务调度的***,该***包括:
任务配置模块,用于获取任务配置指令,根据所述任务配置指令配置任务参数;
任务调度中心节点,与所述任务配置模块相连,用于根据所述任务参数生成可执行任务,统计任务运行节点以及数据源上运行的任务数量,根据所述任务数量以及预设阈值,控制任务的并发度,使所述任务数量小于或等于所述预设阈值;
任务运行节点,与所述任务调度中心节点相连,用于运行所述任务调度中心节点分发的所述可执行任务。
可选地,所述任务配置模块为任务配置网页界面,所述任务配置网页界面用于获取用户输入的所述任务参数,根据所述任务参数进行任务配置。
可选地,所述任务配置网页界面包括:
任务运行节点配置单元,用于获取所述用户输入的所述任务运行节点的数量,根据所述数量相应地增减所述任务运行节点。
可选地,所述任务调度中心节点包括;
优先级控制单元,用于将所述可执行任务划分至对应的任务主题,根据预设的任务优先级,对同一任务主题的所述可执行任务进行分发。
可选地,所述任务运行节点包括:
任务类型配置单元,用于获取任务类型配置指令,根据所述任务类型配置指令,生成相应的任务类型插件,以完成所述任务运行节点的任务类型配置。
可选地,所述任务调度中心节点包括:
任务重新运行单元,用于获取重新运行指令,根据所述重新运行指令确定重新运行的任务,将所述任务分发至所述任务运行节点。
可选地,所述任务调度中心节点包括:
任务清理单元,用于清理符合预设清理条件的可执行任务。
可选地,还包括:
数据库,分别与所述任务配置模块以及所述任务调度中心节点相连,用于存储任务运行状态数据以及任务参数数据。
可选地,还包括:
报警模块,用于接收所述任务调度中心节点生成的报警信息,根据所述报警信息以预设方式进行报警。
此外,本发明还提供了一种大数据任务调度的方法,该方法包括:
获取任务配置指令,根据所述任务配置指令配置任务参数;
根据所述任务参数生成可执行任务,统计任务运行节点以及数据源上运行的任务数量,根据所述任务数量以及预设阈值,控制任务的并发度,使得所述任务数量小于或等于所述预设阈值;
将所述可执行任务分发至所述任务运行节点。
本发明所提供的一种大数据任务调度的***以及方法,通过任务配置模块获取任务配置指令,根据所述任务配置指令配置任务参数;任务调度中心节点根据所述任务参数生成可执行任务,统计当前***相应数据源上运行的任务数量,根据所述任务数量以及预设阈值,控制相应任务运行节点上的任务以及相应数据源上的任务的并发度,使所述任务数量小于所述预设阈值;在任务的并发度在预设阈值范围内且满足依赖时,任务调度中心节点进行任务分发,任务运行节点运行所述任务调度中心节点分发的所述可执行任务。任务调度中心节点在下发可执行任务时,统计得出当前任务的并发度,判断运行的任务数量是否超出了预设阈值,来确定是否继续下发可执行任务,避免同时运行的任务数量过多从而导致的***负载过高。可见,本申请对大数据任务的并发度进行控制,保证了大数据任务的运行效率。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的大数据任务调度***的一种具体实施方式的结构示意图;
图2为本发明实施例提供的大数据任务调度方法的一种具体实施方式的流程示意图;
图3为大数据任务调度***调度任务的调度流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,图1为本发明实施例所提供的大数据任务的调度***的一种具体实施方式的结构示意图,该***包括:
任务配置模块11,用于获取任务配置指令,根据所述任务配置指令配置任务参数。可以理解的是,任务配置指令可以是指任务的运行参数配置指令,也可以是任务操作的配置指令,例如,增加任务指令、复制任务指令以及补录任务指令等,也可以是任务执行顺序指令。任务参数任务配置模块11可以对大数据任务的运行参数以及相关参数进行配置,大数据任务的配置可以通过获取用户输入的配置代码,根据配置代码可以生成相应的大数据任务;可以是通过获取用户输入的任务配置参数;也可以是获取任务的操作指令,从而对大数据任务进行相应的操作,例如,增加任务操作、复制任务操作依据补录任务操作等操作指令。
作为一种具体实施方式,任务配置模块11具体可以包括任务配置网页界面,任务配置网页界面用于获取用户输入的所述任务参数,根据所述任务参数进行任务配置以及任务的依赖。任务配置网页界面单元可以具体表现为任务配置网页界面,任务配置网页界面可以用于与用户交互,即用户可以利用任务配置网页界面完成任务的配置。用户在任务配置网页界面上可以输入相应的任务名、任务生效时间、任务类型、任务周期以及任务的扩展信息等任务参数,以完成新任务的配置;也可以在任务配置网页界面上进行补录任务、冻结任务、恢复任务以及负责任务等操作,当用户需要停止运行当前正在运行的任务时,则可以通过冻结任务操作来将任务冻结,即任务不会生成实例,也不会继续运行。当然,当用户需要恢复已冻结的任务时,可以通过恢复任务操作来解冻任务,即任务可以继续运行。
显而易见地,任务配置网页界面用于与用户进行交互,用户可以输入或者是选择相应的任务参数,获取到用户输入的任务参数后,生成相应的配置指令,以完成相应的任务配置操作。任务配置网页界面不能单纯地理解成只有一个网页界面,而是指多个可以进行任务配置的网页界面,多个网页界面之间相互关联。当然,还可以在任务配置网页界面上查询大数据任务的运行状态。
需要说明的是,任务配置网页界面与用户的交互是基于BS(Browser-Server)模型的,即用户利用浏览器进行相应的任务配置,浏览器与服务器之间进行数据交互。用户在浏览器上的配置操作均可转换为预设格式的数据,然后通过通信协议与网页服务器进行交互。例如,将用户的操作转换为json数据,然后利用http协议向服务器发出配置任务的请求。服务器根据接收到的请求,对浏览器发来的请求进行解析,例如,解析相应的json数据。并将解析的数据持久化存储到相应的任务配置表以及任务依赖表。
利用任务配置网页界面来完成任务的配置已经任务的依赖,用户可以通过网页界面进行简单的配置操作,即可完成所需的任务基本配置以及任务依赖的配置即任务的执行先后顺序。无需编写繁琐的配置文件,十分地方便高效。
除了可以在任务配置网页界面上进行相应的任务配置以及任务的依赖外,还可以在任务配置网页界面上增加任务运行节点配置功能,即用户可以在任务配置网页界面上进行相应的增加或减少任务运行节点的操作。
作为一种具体实施方式,所述任务配置网页界面可以包括:任务运行节点配置单元,用于获取所述用户输入的所述任务运行节点的数量,根据所述数量相应地增减所述任务运行节点。即可以利用任务配置网页界面控制任务运行节点的并行化。任务运行节点的并行化可以是指同一***中,可以同时运行多个任务运行节点。需要说明的是,新增加的任务运行节点在定义了所运行的任务类型后,在该新增的任务运行节点启动后,即可自动加入到该任务类型对应的组别。利用任务配置网页界面来对任务运行节点进行管理,操作相对简单便捷,也十分地高效。
任务调度中心节点12,与所述任务配置模块11相连,用于根据所述任务参数生成可执行任务,统计运行的任务数量,根据所述任务数量以及预设阈值,控制任务的并发度,使所述任务数量小于或等于所述预设阈值。任务调度中心节点提供有程序应用接口,服务器以及任务运行节点根据需求调用程序应用接口。通过获取任务配置模块的配置指令以及配置参数,进行任务实例化,即根据任务的具体信息生成可执行任务。
任务调度中心节点12在生成可执行任务后,需要将生成的可执行任务分发到相应的任务运行节点。在进行任务分发时,为了防止***的负载过重,可以先统计当前运行的任务数量,然后与根据存储在数据库内的预设阈值相比较大小,来确定是否继续进行可执行任务的下发,即任务的并发度控制。当运行的任务数量大于或等于预设阈值时,则不继续进行可执行任务的下发,直到任务数量大于或等于预设阈值;当运行的任数量小于预设阈值时,则继续进行可执行任务的下发。而统计正在运行的任务数量基于可执行任务的运行状态的。可以理解的是,预设阈值可以是人为地设置大小,用户可以综合衡量考虑任务的运行效率以及运行数量,来设置相应的运行任务数量阈值。对任务的并发度进行控制,可以使得***同时运行的任务不至于过多,可以很好地保证任务的运行效率。
任务调度中心节点可以进行任务的实例化,其任务的实例化可以根据用户配置的任务参数,定时生成相应的任务实例即可执行任务。实例化的时间间隔可以是人为设定的,例如,任务调度中心可以每隔一分钟则获取任务的状态、任务生效时间、任务的周期以及任务周期步长等任务信息,来生成相应的可执行任务。
在进行任务下发时,通过控制任务的并发度,可以保证任务的运行效率,进一步地,还可以在进行任务的并发度控制之后,增加任务优先级支持。即在任务下发时,先对优先级高的可执行任务进行下发。
作为一种具体实施方式,其任务调度中心节点12可以包括;优先级控制单元,用于将所述可执行任务划分至对应的任务主题,根据预设的任务优先级,对同一任务主题的所述可执行任务进行分发。在进行任务配置时,可以配置任务的类型参数。根据任务的类型可以生成相应的类型的可执行任务。将生成的可执行任务划分至预先实现的任务主题中,任务主题可以理解成任务类别。任务主题具体可以表现为表,即不同类型的任务存储至不同的表中。对同一类型的任务的提前设置好任务的优先级。在对同一类型可执行任务进行下发时,将优先级的高低来决定下发的先后顺序。在任务并发度控制的基础上,增加优先级支持,可以合理地利用***有限的资源。
对于一些任务来说,在一次运行结束后,可能还需要进行二次或者多次运行,即任务重跑。相应地,可以为任务调度中心节点12增设任务重跑功能。
作为一种具体实施方式,所述任务调度中心节点12可以包括:任务重新运行单元,用于获取重新运行指令,根据所述重新运行指令确定重新运行的可执行任务,将所述可执行任务分发至所述任务运行节点。在接收到任务重新运行指令后,对重新运行指令进行解析,确定重跑任务的依赖关系已经任务参数,最后生成相应的可执行任务,等待相应的任务运行节点拉去重跑的可执行任务,进而完成任务的重跑。可以对任务的下发过程增加优先级支持,即在将可执行任务***到任务实例表时,利用任务的优先级进行先后排序。利用任务的优先级以及任务的并发度来重跑任务,不会影响到当前任务的运行。
生成可执行任务后,将任务实例即可执行任务***到相应的任务实例表,以便任务运行节点通过消费线程拉去操作,运行相应的可执行任务。但是,随着时间的增长,任务实例表会越来越大,此时,为了保证***的稳定性,以及任务调度中心节点更快地响应相应的请求,故可以在任务调度中心节点增设任务实例清理功能。
作为一种具体实施方式,所述任务调度中心节点12可以包括:任务清理单元,用于清理符合预设清理条件的所述可执行任务。任务调度中心节点的任务清理会设置相应的清理策略,即预先设定任务实例的清理条件。对应不同类型的任务实例,其预设清理条件也会有相应的不同。例如,设定月任务的保留周期为12个月,周任务的保留周期为8周,日任务的保留周期为62天,小时任务的保留周期为7天。当检测到任务实例的存在时间超过预先设定的时间,则清理相应的任务实例,即将过期的实例从任务实例表删除。当然,可以将清理的任务实例存储至历史数据库,以备后续查询。可以理解的是,清理任务实例的服务有自己的线程池,清理线程可以采用定期轮询的策略对过期实例进行扫描清理。
任务运行节点13,与所述任务调度中心节点相连,用于运行所述任务调度中心节点分发的所述可执行任务。需要说明的是,不同的任务类型对应不同的任务运行节点,任务运行节点可以同时运行多个runner,每个runner只能运行一种任务。即一个任务运行节点可以运行多种类型的任务。任务运行节点可以并行化,即可以***可以运行多个任务运行节点。同时,任务运行节点也可以具有一定的并发度。任务运行节点会定期与任务调度中心节点进行交互,获取可执行任务。例如,hive任务运行节点请求相应的hive类型的任务,每经过一定的间隔例如一分钟则向任务调度中心节点请求可执行任务,将请求到的可执行任务存储至运行池。可以理解的是,间隔会有一定的策略,即间隔可以基于是否请求到任务进行相应的变化。例如,当没有请求到任务时,该间隔可以是1分钟;而当请求到任务时,该间隔可以对半缩短,直到缩短至5秒为止。由于运行池有一定的容量,可以设定运行池满了之后,不再进行任务请求。即任务运行节点上具有一定的任务并发度。
任务运行节点所运行的可执行任务的类型可以是人为进行配置地,故可以在任务运行节点增设任务类型配置功能。
作为一种具体实施方式,所述任务运行节点13可以包括:任务类型配置单元,用于获取任务类型配置指令,根据所述任务类型配置指令,生成相应的任务类型插件,以完成所述任务运行节点的任务类型配置。将任务类型的配置插件化,可以使用户在配置任务运行节点的任务类型时,只需编写简易的逻辑代码,生成相应的业务逻辑插件,即可完成任务运行节点的任务类型的配置。不用在编写繁琐的任务类型配置文件,可以提高任务运行节点的任务类型的配置效率。
运行大数据任务,会得到相应的运行结果,为了更好地管理分析任务运行结果,需要在大数据任务调度***设中设置用于存储任务运行数据的数据库。作为一种具体实施方式,大数据任务调度***还可以包括:数据库,分别与所述任务配置模块以及所述任务调度中心节点相连,用于持久化存储任务运行状态数据以及任务参数数据。数据库可持久化存储大数据任务的运行结果,即将任务运行节点所提交的任务运行结果存储至数据库,也可以存储相应的运行状态数据以及任务信息。当任务配置模块为任务配置网页界面时,可以根据用户的查询指令,将一些存储在数据库中的任务运行状态通过网页界面显示给用户,同时也可以方便以后的数据查询。
大数据任务在运行的过程中,存在运行错误或者是任务运行时间过长,亦或者是任务超时未执行等可能,故可以增设报警服务,以便用户对上述情况的出现及时地处理。
作为一种具体实施方式,大数据任务调度***还可以包括:报警模块,用于接收所述任务调度中心节点生成的报警信息,根据所述报警信息以预设方式进行报警。根据不同的情况的出现,可以运行不同的报警策略,例如,当任务运行节点运行的任务发生异常的时候,任务运行节点会发送报警消息到任调度中心节点,任务调度中心节点在接受到报警信息之后,会构造一条akka消息发送给报警模块,报警模块在接受到该akka消息之后,会使用预先设置的报警方式报警,例如以短信形式将报警信息发送给任务负责人。也可以定期轮询运行的任务,如果可执行任务预先配置了超时未运行成功的时间,那么报警模块在超过这个时间之后,该任务未运行成功,则会将报警的消息序列化成akka消息发送给报警模块,报警模块以预设的报警方式进行报警。
本发明实施例所提供的大数据任务调度的***,通过任务配置模块获取任务配置指令,根据所述任务配置指令配置任务参数;任务调度中心节点根据所述任务参数生成可执行任务,统计当前***相应数据源上运行的任务数量,根据所述任务数量以及预设阈值,控制相应任务运行节点上的任务以及相应数据源上的任务的并发度,使所述任务数量小于所述预设阈值;在任务的并发度在预设阈值范围内且满足依赖时,任务调度中心节点进行任务分发,任务运行节点运行所述任务调度中心节点分发的所述可执行任务。任务调度中心节点在下发可执行任务时,统计得出当前任务的并发度,判断运行的任务数量是否超出了预设阈值,来确定是否继续下发可执行任务,避免同时运行的任务数量过多从而导致的***负载过高。可见,本申请对大数据任务的并发度进行控制,保证了大数据任务的运行效率。
下面对本发明实施例提供的大数据任务调度的方法进行介绍,下文描述大数据任务调度的方法与上文描述的大数据任务调度的***可相互对应参照。
图2为本发明实施例提供的大数据任务调度方法的一种具体实施方式的流程示意图,该方法包括:
步骤201:获取任务配置指令,根据所述任务配置指令配置任务参数;
步骤202:根据所述任务参数生成可执行任务,统计任务运行节点以及数据源上运行的任务数量,根据所述任务数量以及预设阈值,控制任务的并发度,使得所述任务数量小于所述预设阈值;
步骤203:将所述可执行任务分发至所述任务运行节点。
本发明实施例所提供的大数据任务调度的方法,通过任务调度中心节点在下发可执行任务时,统计得出当前任务的并发度,判断运行的任务数量是否超出了预设阈值,来确定是否继续下发可执行任务,避免同时运行的任务数量过多从而导致的***负载过高。可见,本申请对大数据任务的并发度进行控制,保证了大数据任务的运行效率。
为了更好地介绍大数据任务调度***调度管理大数据任务的过程,下面将对任务的配置到运行的过程进行详细地介绍。
请参见图3,图3为大数据任务调度***调度任务的调度流程示意图,一个任务从配置到运行的具体流程包括:
步骤301:任务对应的runner注册;
需要说明的是,任务调度中心节点进行任务的下发时,需要有与任务实例相对应的任务运行节点,运行相应的任务实例,任务运行节点在启动之后,可以发送相关的信息至任务调度中心节点,以便后续的任务分发。例如,需要运行hive任务,则任务运行节点上需要有一个hive的runner。任务调度中心节点在进行hive任务下发时,需要知道相应的hive类型的任务运行节点。故需要hive的runner在启动之后,发送一条msg_regist的消息,任务调度中心节点可以通过该消息确定相应的runner的地址。消息里面包含该runner的地址、可运行任务的任务类型以及akka的端口。其消息的具体发送过程可以是将消息protobuf序列化后,通过tcp通信协议发送至任务调度中心节点,任务调度中心节点在接收到改消息后就会将信息持久化存储。
步骤302:用户通过任务配置网页界面配置相应的任务参数;
用户根据自己的需要可以在任务配置网页界面,进行相应的任务配置,用户可以配置任务的基本参数信息,例如,hive任务的运行周期、hive任务的开始时间、hive任务的依赖以及任务所属的主题。如果,当前的任务实例对应的任务运行节点数量不够,也可以在任务配置网页界面进行增加或者是减少任务运行节点操作。
可以理解的是,步骤301与步骤302没有严格的执行先后顺序。
步骤303:任务调度中心节点获取用户配置的任务参数,根据任务参数进行任务实例化;
任务调度中心节点根据用户所配置的任务参数进行任务的定时实例化,例如,任务调度中心节点每分钟从任务表以及实例表获取任务参数信息,包括任务的状态信息、任务的生效时间信息、任务的周期信息以及任务周期的步长信息。如果满足设定的任务实例化条件则进行任务实例化,例如,其任务实例条件可以为当前时间<(最大实例的数据时间+任务周期*任务步长)。
步骤304;任务运行节点上的runner轮询,请求任务实例;
任务运行节点定时与调度中心节点进行交互,获取可以运行的任务实例。例如,hive的runner会请求hive任务类型的任务实例。任务运行节点可以将请求到的任务存储至runner的运行池执行。由于运行池的存储空间是有限,当存储空间已用完后,不会继续向任务调度中心节点请求任务实例。可以理解的是,每个任务运行节点上的相应的runner会有一定的并发度,且并发度可以动态调整。
步骤305:任务调度中心节点根据runner的请求,分发任务实例;
任务调度中心节点接收任务运行节点的请求,将请求存储至请求队列。同时,消费线程会不断拉去请求队列中的请求,进行相应的处理。根据请求的任务实例的任务类型,任务调度中心节点对目前的任务实例,结合请求的任务类型去筛选合适的任务,进行任务的下发至相应的任务运行节点运行。
任务调度中心节点在处理请求以及分发任务的过程中,会针对请求的任务实例的任务类型,可以在数据库中查找合适的任务实例。而在查找可执行任务实例之前,任务调度中心节点可以先查找该任务类型的runner是否存在。由于runner与任务调度中心节点之间设置有心跳机制,故runner定期反馈心跳汇报给任务调度中心节点。当检测到没有该任务类型的runner,或者该任务类型的runner已经太久没有心跳反馈,不进行可执行任务的下发。
任务调度中心节点确认与可执行任务相对应的runner存在时,可以获取该任务类型的所有未成功运行的任务,并且进行迭代,在迭代的过程中,会对任务实例的合法性进行检测,检测的内容可以包括数据时间是否为空以及任务是否是正常状态。对任务实例的合法性检测完成后,可以统计当前正在运行的任务数量,包括被kill的任务、失败的任务以及server上运行的任务。统计完成之后,根据存储在数据库的预设并发数量,对任务进行并发度的控制。例如,如果服务器同时运行的任务数量已经超过预设并发数量,则不对该任务类型的任务进行下发。
在进行任务的并发度控制后,可以根据不同的任务优先级,将任务实例放在不同的排序队列里面。任务的排序可以根据尝试次数、优先级、任务周期、数据时间以及任务id等排序条件进行排序。任务进行排序之后,从每个任务队列中选出第一个任务实例,如果该任务实例通过父任务检查,则将父任务实例加入最终的任务排序队列。依次进行排序,得到最终可以下发的任务实例。在得到可下发的任务实例之后,可以继续获取相应的任务扩展信息,然后任务调度中心节点将任务实例的数据通过protobuf将其序列化,序列化之后的数据可以通过tcp协议发送至相应的runner运行节点。
步骤306:任务运行节点运行任务调度中心节点下发的hive任务,得出任务运行结果。
任务运行节点的runner在接收任务调度中心下发的任务实例的数据后,可以将任务实例的数据以及任务扩展参数,利用protobuf反序列化,得到相应的任务数据。runner可以根据反序列化出来的任务实例以及任务扩展信息,运行相应的程序。在运行程序的过程之中,如果任务运行异常或者是任务运行成功,可以将异常信息或者是运行结果信息通过protobuf序列化commit信息,将信息发送至任务调度中心节点,任务调度中心节点在接收到commit信息之后,可以将运行结果持久化存储到数据库。
在本发明实施例提供的大数据任务调度***基础上,也可以提供相应的报警服务已经任务实例清理服务,其具体过程可参照上文相应的内容,在此不再重复赘述。
需要说明的是,本发明实例针对任务的配置到运行的过程进行详细介绍,大数据任务调度***内的其它的大数据任务的配置运行过程与上述过程类似,在此不再赘述。
本发明实施例通过对任务的配置运行过程进行详细地描述,可以看出,任务配置可以通过任务配置网页界面,即可完成所需任务的配置已经任务之间的依赖配置,同时,在任务配置网页界面可以进行任务运行节点的增减操作,支持任务运行节点的并行化;任务的的配置比较灵活,支持任务的优先级设置已经任务的并发度控制。可以很好地控制大数据任务调度***的资源的分配,使资源可以合理地被利用,进行任务的并发度控制,可以避免客户端负载过高,从而导致的大数据任务运行的效率降低的问题出现。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的大数据任务调度的***以及方法以及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种大数据任务调度的***,其特征在于,包括:
任务配置模块,用于获取任务配置指令,根据所述任务配置指令配置任务参数;
任务调度中心节点,与所述任务配置模块相连,用于根据所述任务参数生成可执行任务,统计任务运行节点以及数据源上运行的任务数量,根据所述任务数量以及预设阈值,控制任务的并发度,使所述任务数量小于或等于所述预设阈值;
任务运行节点,与所述任务调度中心节点相连,用于运行所述任务调度中心节点分发的所述可执行任务。
2.如权利要求1所述的***,其特征在于,所述任务配置模块为任务配置网页界面,所述任务配置网页界面用于获取用户输入的所述任务参数,根据所述任务参数进行任务配置。
3.如权利要求2所述的***,其特征在于,所述任务配置网页界面包括:
任务运行节点配置单元,用于获取所述用户输入的所述任务运行节点的数量,根据所述数量相应地增减所述任务运行节点。
4.如权利要求1所述的***,其特征在于,所述任务调度中心节点包括;
优先级控制单元,用于将所述可执行任务划分至对应的任务主题,根据预设的任务优先级,对同一任务主题的所述可执行任务进行分发。
5.如权利要求1所述的***,其特征在于,所述任务运行节点包括:
任务类型配置单元,用于获取任务类型配置指令,根据所述任务类型配置指令,生成相应的任务类型插件,以完成所述任务运行节点的任务类型配置。
6.如权利要求1至5任一项所述的***,其特征在于,所述任务调度中心节点包括:
任务重新运行单元,用于获取重新运行指令,根据所述重新运行指令确定重新运行的任务,将所述任务分发至所述任务运行节点。
7.如权利要求6所述的***,其特征在于,所述任务调度中心节点包括:
任务清理单元,用于清理符合预设清理条件的可执行任务。
8.如权利要求6所述的***,其特征在于,还包括:
数据库,分别与所述任务配置模块以及所述任务调度中心节点相连,用于存储任务运行状态数据以及任务参数数据。
9.如权利要求6所述的***,其特征在于,还包括:
报警模块,用于接收所述任务调度中心节点生成的报警信息,根据所述报警信息以预设方式进行报警。
10.一种大数据任务调度的方法,其特征在于,包括:
获取任务配置指令,根据所述任务配置指令配置任务参数;
根据所述任务参数生成可执行任务,统计任务运行节点以及数据源上运行的任务数量,根据所述任务数量以及预设阈值,控制任务的并发度,使得所述任务数量小于或等于所述预设阈值;
将所述可执行任务分发至所述任务运行节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611102737.XA CN106557363A (zh) | 2016-12-05 | 2016-12-05 | 一种大数据任务调度的***以及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611102737.XA CN106557363A (zh) | 2016-12-05 | 2016-12-05 | 一种大数据任务调度的***以及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106557363A true CN106557363A (zh) | 2017-04-05 |
Family
ID=58446205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611102737.XA Pending CN106557363A (zh) | 2016-12-05 | 2016-12-05 | 一种大数据任务调度的***以及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106557363A (zh) |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107623731A (zh) * | 2017-09-15 | 2018-01-23 | 浪潮软件股份有限公司 | 一种任务调度方法、客户端、服务集群及*** |
CN107832134A (zh) * | 2017-11-24 | 2018-03-23 | 平安科技(深圳)有限公司 | 多任务处理方法、应用服务器及存储介质 |
CN107832140A (zh) * | 2017-10-10 | 2018-03-23 | 武汉斗鱼网络科技有限公司 | 一种rpc请求控制的方法、存储介质、电子设备和*** |
CN107908465A (zh) * | 2017-10-19 | 2018-04-13 | 深圳索信达数据技术股份有限公司 | 大数据平台的任务调度方法 |
CN107943686A (zh) * | 2017-10-30 | 2018-04-20 | 北京奇虎科技有限公司 | 一种测试调度方法、装置、服务器及存储介质 |
CN107992364A (zh) * | 2017-10-31 | 2018-05-04 | 用友金融信息技术股份有限公司 | 作业调度方法及作业调度*** |
CN108132836A (zh) * | 2017-12-29 | 2018-06-08 | 北京奇艺世纪科技有限公司 | 一种任务分发方法、装置及电子设备 |
CN108319499A (zh) * | 2018-02-07 | 2018-07-24 | 麒麟合盛网络技术股份有限公司 | 任务调度方法及装置 |
CN108415811A (zh) * | 2018-03-23 | 2018-08-17 | 广发证券股份有限公司 | 一种监测业务逻辑的方法及装置 |
CN108628954A (zh) * | 2018-04-10 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 一种海量数据自助查询方法和装置 |
CN108647093A (zh) * | 2018-05-09 | 2018-10-12 | 厦门南讯软件科技有限公司 | 一种分布式任务处理***及其使用方法 |
CN108932157A (zh) * | 2017-05-22 | 2018-12-04 | 北京京东尚科信息技术有限公司 | 分布式处理任务的方法、***、电子设备和可读介质 |
CN109101575A (zh) * | 2018-07-18 | 2018-12-28 | 广东惠禾科技发展有限公司 | 计算方法及装置 |
CN109257432A (zh) * | 2018-10-12 | 2019-01-22 | 桂林电子科技大学 | 一种任务切换方法、计算机装置及可读存储介质 |
CN109271251A (zh) * | 2018-08-09 | 2019-01-25 | 深圳市瑞云科技有限公司 | 一种通过约束来调度节点机的方法 |
CN109542600A (zh) * | 2018-11-15 | 2019-03-29 | 口碑(上海)信息技术有限公司 | 分布式任务调度***及方法 |
CN109542620A (zh) * | 2018-11-16 | 2019-03-29 | 中国人民解放军陆军防化学院 | 一种云中关联任务流的资源调度配置方法 |
CN109656693A (zh) * | 2018-10-25 | 2019-04-19 | 中国平安人寿保险股份有限公司 | 任务调度方法、装置、服务器及存储介质 |
CN110287015A (zh) * | 2019-06-27 | 2019-09-27 | 四川中电启明星信息技术有限公司 | Pc自动化作业被动调度方法 |
CN110737534A (zh) * | 2019-10-29 | 2020-01-31 | 京东数字科技控股有限公司 | 任务的处理方法、装置和服务器 |
CN110851245A (zh) * | 2019-09-24 | 2020-02-28 | 厦门网宿有限公司 | 一种分布式异步任务调度方法及电子设备 |
CN111064746A (zh) * | 2019-12-30 | 2020-04-24 | 深信服科技股份有限公司 | 一种资源分配方法、装置、设备及存储介质 |
CN111158885A (zh) * | 2019-12-31 | 2020-05-15 | 中国银行股份有限公司 | 作业调度***中并发度控制方法及装置 |
CN111190607A (zh) * | 2020-01-02 | 2020-05-22 | 广州虎牙科技有限公司 | 任务插件处理方法和装置、任务调度服务器及存储介质 |
CN111367645A (zh) * | 2020-03-18 | 2020-07-03 | 中国建设银行股份有限公司 | 一种实时任务调度控制方法、***、设备及可读存储介质 |
CN112231073A (zh) * | 2019-07-15 | 2021-01-15 | 上海哔哩哔哩科技有限公司 | 一种分布式任务调度方法及其装置 |
CN112488579A (zh) * | 2020-12-17 | 2021-03-12 | 上海亿保健康管理有限公司 | 任务指派方法及装置、电子设备、存储介质 |
CN112579276A (zh) * | 2020-12-23 | 2021-03-30 | 绿瘦健康产业集团有限公司 | 一种用于大数据平台的任务作业可视化*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710411A (zh) * | 2009-12-01 | 2010-05-19 | 中国建设银行股份有限公司 | 一种实时任务处理方法及其设备 |
CN101917387A (zh) * | 2009-11-17 | 2010-12-15 | 新奥特(北京)视频技术有限公司 | 一种多媒体转码集群*** |
CN102868573A (zh) * | 2012-09-12 | 2013-01-09 | 北京航空航天大学 | Web服务负载云测试方法和装置 |
-
2016
- 2016-12-05 CN CN201611102737.XA patent/CN106557363A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917387A (zh) * | 2009-11-17 | 2010-12-15 | 新奥特(北京)视频技术有限公司 | 一种多媒体转码集群*** |
CN101710411A (zh) * | 2009-12-01 | 2010-05-19 | 中国建设银行股份有限公司 | 一种实时任务处理方法及其设备 |
CN102868573A (zh) * | 2012-09-12 | 2013-01-09 | 北京航空航天大学 | Web服务负载云测试方法和装置 |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108932157A (zh) * | 2017-05-22 | 2018-12-04 | 北京京东尚科信息技术有限公司 | 分布式处理任务的方法、***、电子设备和可读介质 |
CN107623731A (zh) * | 2017-09-15 | 2018-01-23 | 浪潮软件股份有限公司 | 一种任务调度方法、客户端、服务集群及*** |
CN107623731B (zh) * | 2017-09-15 | 2020-09-01 | 浪潮软件股份有限公司 | 一种任务调度方法、客户端、服务集群及*** |
CN107832140B (zh) * | 2017-10-10 | 2021-01-01 | 武汉斗鱼网络科技有限公司 | 一种rpc请求控制的方法、存储介质、电子设备和*** |
CN107832140A (zh) * | 2017-10-10 | 2018-03-23 | 武汉斗鱼网络科技有限公司 | 一种rpc请求控制的方法、存储介质、电子设备和*** |
CN107908465A (zh) * | 2017-10-19 | 2018-04-13 | 深圳索信达数据技术股份有限公司 | 大数据平台的任务调度方法 |
CN107943686A (zh) * | 2017-10-30 | 2018-04-20 | 北京奇虎科技有限公司 | 一种测试调度方法、装置、服务器及存储介质 |
CN107992364A (zh) * | 2017-10-31 | 2018-05-04 | 用友金融信息技术股份有限公司 | 作业调度方法及作业调度*** |
CN107832134A (zh) * | 2017-11-24 | 2018-03-23 | 平安科技(深圳)有限公司 | 多任务处理方法、应用服务器及存储介质 |
CN108132836A (zh) * | 2017-12-29 | 2018-06-08 | 北京奇艺世纪科技有限公司 | 一种任务分发方法、装置及电子设备 |
CN108132836B (zh) * | 2017-12-29 | 2021-10-22 | 北京奇艺世纪科技有限公司 | 一种任务分发方法、装置及电子设备 |
CN108319499A (zh) * | 2018-02-07 | 2018-07-24 | 麒麟合盛网络技术股份有限公司 | 任务调度方法及装置 |
CN108319499B (zh) * | 2018-02-07 | 2021-06-04 | 麒麟合盛网络技术股份有限公司 | 任务调度方法及装置 |
CN108415811B (zh) * | 2018-03-23 | 2021-08-27 | 广发证券股份有限公司 | 一种监测业务逻辑的方法及装置 |
CN108415811A (zh) * | 2018-03-23 | 2018-08-17 | 广发证券股份有限公司 | 一种监测业务逻辑的方法及装置 |
CN108628954A (zh) * | 2018-04-10 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 一种海量数据自助查询方法和装置 |
CN108628954B (zh) * | 2018-04-10 | 2021-05-25 | 北京京东尚科信息技术有限公司 | 一种海量数据自助查询方法和装置 |
CN108647093A (zh) * | 2018-05-09 | 2018-10-12 | 厦门南讯软件科技有限公司 | 一种分布式任务处理***及其使用方法 |
CN109101575A (zh) * | 2018-07-18 | 2018-12-28 | 广东惠禾科技发展有限公司 | 计算方法及装置 |
CN109271251A (zh) * | 2018-08-09 | 2019-01-25 | 深圳市瑞云科技有限公司 | 一种通过约束来调度节点机的方法 |
CN109257432B (zh) * | 2018-10-12 | 2021-01-12 | 桂林电子科技大学 | 一种任务切换方法、计算机装置及可读存储介质 |
CN109257432A (zh) * | 2018-10-12 | 2019-01-22 | 桂林电子科技大学 | 一种任务切换方法、计算机装置及可读存储介质 |
CN109656693A (zh) * | 2018-10-25 | 2019-04-19 | 中国平安人寿保险股份有限公司 | 任务调度方法、装置、服务器及存储介质 |
CN109542600B (zh) * | 2018-11-15 | 2020-12-25 | 口碑(上海)信息技术有限公司 | 分布式任务调度***及方法 |
CN109542600A (zh) * | 2018-11-15 | 2019-03-29 | 口碑(上海)信息技术有限公司 | 分布式任务调度***及方法 |
CN109542620B (zh) * | 2018-11-16 | 2021-05-28 | 中国人民解放军陆军防化学院 | 一种云中关联任务流的资源调度配置方法 |
CN109542620A (zh) * | 2018-11-16 | 2019-03-29 | 中国人民解放军陆军防化学院 | 一种云中关联任务流的资源调度配置方法 |
CN110287015A (zh) * | 2019-06-27 | 2019-09-27 | 四川中电启明星信息技术有限公司 | Pc自动化作业被动调度方法 |
CN112231073A (zh) * | 2019-07-15 | 2021-01-15 | 上海哔哩哔哩科技有限公司 | 一种分布式任务调度方法及其装置 |
CN110851245A (zh) * | 2019-09-24 | 2020-02-28 | 厦门网宿有限公司 | 一种分布式异步任务调度方法及电子设备 |
CN110737534B (zh) * | 2019-10-29 | 2021-05-25 | 京东数字科技控股有限公司 | 任务的处理方法、装置和服务器 |
CN110737534A (zh) * | 2019-10-29 | 2020-01-31 | 京东数字科技控股有限公司 | 任务的处理方法、装置和服务器 |
CN111064746A (zh) * | 2019-12-30 | 2020-04-24 | 深信服科技股份有限公司 | 一种资源分配方法、装置、设备及存储介质 |
CN111158885A (zh) * | 2019-12-31 | 2020-05-15 | 中国银行股份有限公司 | 作业调度***中并发度控制方法及装置 |
CN111158885B (zh) * | 2019-12-31 | 2023-05-23 | 中国银行股份有限公司 | 作业调度***中并发度控制方法及装置 |
CN111190607A (zh) * | 2020-01-02 | 2020-05-22 | 广州虎牙科技有限公司 | 任务插件处理方法和装置、任务调度服务器及存储介质 |
CN111190607B (zh) * | 2020-01-02 | 2024-02-09 | 广州虎牙科技有限公司 | 任务插件处理方法和装置、任务调度服务器及存储介质 |
CN111367645A (zh) * | 2020-03-18 | 2020-07-03 | 中国建设银行股份有限公司 | 一种实时任务调度控制方法、***、设备及可读存储介质 |
CN111367645B (zh) * | 2020-03-18 | 2023-12-22 | 中国建设银行股份有限公司 | 一种实时任务调度控制方法、***、设备及可读存储介质 |
CN112488579A (zh) * | 2020-12-17 | 2021-03-12 | 上海亿保健康管理有限公司 | 任务指派方法及装置、电子设备、存储介质 |
CN112579276A (zh) * | 2020-12-23 | 2021-03-30 | 绿瘦健康产业集团有限公司 | 一种用于大数据平台的任务作业可视化*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106557363A (zh) | 一种大数据任务调度的***以及方法 | |
WO2020151177A1 (zh) | 基于大数据行为调度应用任务的方法、服务器及存储介质 | |
Shi et al. | MDP and machine learning-based cost-optimization of dynamic resource allocation for network function virtualization | |
US8713163B2 (en) | Monitoring cloud-runtime operations | |
CN112000445A (zh) | 分布式任务调度的方法及*** | |
EP3180695B1 (en) | Systems and methods for auto-scaling a big data system | |
CN108123820B (zh) | 一种网络设备信息采集方法和装置 | |
CN107918556A (zh) | 一种定时任务在多个服务器的并行执行方法和装置 | |
JP2011123881A (ja) | 一連の従属関係が予め定められたアクティビティを有するワークフローの複数のタスクサーバ上での実行 | |
CN115658272B (zh) | Etl任务调度方法、存储介质、电子设备 | |
CN106462459B (zh) | 为分布式处理***管理元数据 | |
WO2023071576A1 (zh) | 容器集群构建方法及*** | |
CN102420709A (zh) | 一种基于任务框架的调度任务管理方法和设备 | |
CN108153859A (zh) | 一种基于Hadoop与Spark的效用次序并行确定方法 | |
CN112019577A (zh) | 专属云存储实现方法、装置、计算设备及计算机存储介质 | |
CN109710679A (zh) | 数据抽取方法及装置 | |
CN117762591A (zh) | 任务控制方法、任务控制装置、计算机设备和存储介质 | |
CN109032779A (zh) | 任务处理方法、装置、计算机设备及可读存储介质 | |
CN106598726A (zh) | 一种多任务管理***及其分布式部署方法 | |
WO2023273157A1 (zh) | 一种工作流生成方法、装置、设备及存储介质 | |
CN106550002A (zh) | 一种paas云托管***及方法 | |
CN111476478B (zh) | 美术计划任务的处理方法和装置 | |
CN113419836A (zh) | 任务处理方法、装置、电子设备和计算机可读存储介质 | |
CN108683612B (zh) | 一种消息获取方法和装置 | |
CN110354504A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170405 |
|
RJ01 | Rejection of invention patent application after publication |