CN107580023B - 一种动态调整任务分配的流处理作业调度方法及系统 - Google Patents

一种动态调整任务分配的流处理作业调度方法及系统 Download PDF

Info

Publication number
CN107580023B
CN107580023B CN201710660801.4A CN201710660801A CN107580023B CN 107580023 B CN107580023 B CN 107580023B CN 201710660801 A CN201710660801 A CN 201710660801A CN 107580023 B CN107580023 B CN 107580023B
Authority
CN
China
Prior art keywords
node server
stream processing
task
computing node
main control
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
CN201710660801.4A
Other languages
English (en)
Other versions
CN107580023A (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.)
Shandong University
Original Assignee
Shandong University
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 Shandong University filed Critical Shandong University
Priority to CN201710660801.4A priority Critical patent/CN107580023B/zh
Publication of CN107580023A publication Critical patent/CN107580023A/zh
Application granted granted Critical
Publication of CN107580023B publication Critical patent/CN107580023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种动态调整任务分配的流处理作业调度方法及系统,其中该方法包括主控节点服务器接收流处理作业,按照给定的参考并发度以及集群中可用资源及流处理作业的自身结构,生成初始任务分配方案;在流处理业务运行过程中,各个计算节点服务器将其自身运行状态信息自动汇报至主控节点服务器,由主控节点服务器进行统一汇总及相应聚合操作;主控节点服务器根据聚合操作后的信息预测下一时段的数据平均处理量以及相应资源占用值,进而动态调整在各个计算节点服务器的流处理任务实例,最终生成流处理作业的动态分配方案并分配至相应计算节点服务器。

Description

一种动态调整任务分配的流处理作业调度方法及系统
技术领域
本发明属于分布式流处理领域,尤其涉及一种动态调整任务分配的流处理作业调度方法及系统。
背景技术
近年来,随着信息化和互联网的不断发展,大量数据被快速、实时的产生。为了能够快速,高效,即时的对数据中的信息进行获取和分析,流处理系统作为一种数据实时处理系统,受到了广泛的应用。流处理作业作为一种长时间持续运行的作业任务,在运行过程中所处理的数据量通常会随时间发生较大变化。
分布式流处理系统中,通常将流处理作业抽象为一个有向无环图。图中的点表示作业的逻辑单元,图中的边表示数据的流向和分组策略。流处理作业运行时,需将有向无环图映射为物理执行图,将作业逻辑单元按照一定并发度展开,形成流处理任务实例,分配至不同的物理节点上。现有的分布式流处理系统大都采用指定并发度的模式运行。这种方式虽然能够以直接简便的方式部署流处理应用,但该种方式存在以下不足之处:
当面对变化的数据量时,难以针对作业任务中不同逻辑单元的并发度进行动态的调整。因此,为了应对流处理应用的处理量高峰,需预先计算并分配合适的并发度,从而导致在低负荷运行情况下对集群资源占用的浪费。
为了能够减少流处理运行过程中对资源的多余占用,提升集群整体资源利用率,需要引入一种动态的调整机制,以动态使用,动态申请为原则,使分布式流处理系统能够根据数据量的变化,按需使用节点,以动态调整任务分配策略。
发明内容
为了解决现有技术的不足,本发明提供了一种动态调整任务分配的流处理作业调度方法,其能解决长期运行的流处理作业对集群资源的多余占用,根据流处理作业运行时处理的数据量及负载,动态调整流处理作业的并发度,从而达到最小化资源占用的目的。
本发明的动态调整任务分配的流处理作业调度方法,该方法适用于分布式集群服务器中,所述分布式集群服务器包括一个主控节点服务器以及与其相互的通讯的若干个计算节点服务器;
该动态调整任务分配的流处理作业调度方法,包括:
主控节点服务器接收流处理作业,按照给定的参考并发度以及集群中可用资源及流处理作业的自身结构,生成初始任务分配方案;
在流处理业务运行过程中,各个计算节点服务器将其自身运行状态信息自动汇报至主控节点服务器,由主控节点服务器进行统一汇总及相应信息聚合操作;
主控节点服务器根据聚合操作后的信息预测下一时段的数据平均处理量以及相应资源占用值,进而动态调整在各个计算节点服务器的流处理任务实例,最终生成流任务动态分配方案并分配至相应计算节点服务器。
进一步的,该方法还包括:
实时存储生成的流任务动态分配方案,并采用事件驱动模型来检测当前分配任务是否发生变化,若是,则将变化后的流任务分配方案实时分配至相应计算节点服务器。
进一步的,主控节点服务器接收的流处理作业为有向无环图的形式。
其中图中每个点为执行处理流程的逻辑单元,边为逻辑单元之间进行信息传递的通路。
进一步的,主控节点服务器生成初始任务分配方案的过程,包括:
步骤1.1:分析接收的流处理作业的拓扑结构,利用图搜索算法对流处理中逻辑单元进行排序,获取排序后列表;
步骤1.2:利用初始化并发度对上述排序列表按比例展开为任务实例列表;
步骤1.3:获取当前集群中可用的计算节点服务器及插槽,对当前集群中可用计算节点服务器按照插槽剩余数目进行升序排序;
步骤1.4:将任务实例列表按序分配至可用计算节点服务器上,完成第一步分配;
步骤1.5:寻找能够替换当前分配方案的计算节点服务器,使得所使用的计算节点服务器的空余插槽尽可能少,若有,执行替换并重复该步骤,直至完成;
步骤1.6:获得流处理作业的初始化分配方案。
这样本发明能够在没有其他辅助信息的前提下,充分利用流处理作业自身的结构特性,减少初始化分配带来的通信开销,并为后续动态的调度提供调整空间。
进一步的,主控节点服务器根据预测数据,检查是否违反物理资源约束,若违反,计算满足需求的相应流处理逻辑单元的并发度,作为新的并发度。
本发明能够根据流处理业务运行过程中的数据处理量及计算节点负载,利用历史信息及预测信息等多种信息来源,动态监控并调整任务分配策略。
进一步的,主控节点服务器利用排队理论,将流数据处理过程看作是一系列排队的过程,数据在逻辑单元上的处理时间以及逻辑单元之间的数据通信时间对数据计算整体时间进行估算,利用信息预测模块的数据量预测值,通过排队理论计算整体排队时间,进而计算出数据流平均处理时间。
本发明根据给定的不同任务分配方案,快速有效的对现有分配策略进行调整,并最小化调整过程对流处理作业整体带来的影响。
本发明还提供了一种动态调整作业中任务分配的流处理作业调度系统。
本发明的一种动态调整作业中任务分配的流处理作业调度系统,包括:
主控节点服务器,其被配置为接收流处理作业,按照给定的参考并发度以及集群中可用资源及流处理作业的自身结构,生成初始任务分配方案;
若干个分别与主控节点服务器相互通讯的计算节点服务器,在流处理业务运行过程中,计算节点服务器被配置为将其自身运行状态信息自动汇报至主控节点服务器,由主控节点服务器进行统一汇总及相应聚合操作;
主控节点服务器,还被配置为根据聚合操作后的信息预测下一时段的数据平均处理量以及相应资源占用值,进而动态调整在各个计算节点服务器的流处理任务实例,最终生成流任务动态分配方案并分配至相应计算节点服务器。
进一步的,主控节点服务器还被配置为:
分析接收的流处理作业的拓扑结构,利用搜索算法对流处理中逻辑单元进行排序,获取排序后列表;
利用初始化并发度对上述排序列表按比例展开为任务实例列表;
获取当前集群中可用的计算节点服务器及插槽,对当前集群中可用计算节点服务器按照插槽剩余数目进行升序排序;
将任务实例列表按序分配至可用计算节点服务器上,完成第一步分配;
寻找能够替换当前分配方案的计算节点服务器,使得所使用的计算节点服务器的空余插槽尽可能少,若有,执行替换并重复该步骤,直至完成;
获得流处理作业的初始化分配方案。
进一步的,主控节点服务器还被配置为:
根据预测数据,检查是否违反物理资源约束,若违反,计算满足需求的相应流处理逻辑单元的并发度,作为新的并发度。
进一步的,主控节点服务器还被配置为:
利用排队理论,将流数据处理过程看作是一系列排队的过程,数据在逻辑单元上的处理时间以及逻辑单元之间的数据通信时间对数据计算整体时间进行估算,利用信息预测模块的数据量预测值,通过排队理论计算整体排队时间,进而计算出数据流平均处理时间。
本发明还提供了另一种动态调整作业中任务分配的流处理作业调度系统。
本发明的另一种动态调整作业中任务分配的流处理作业调度系统,包括:主控节点服务器和若干个分别与主控节点服务器相互通讯的计算节点服务器;
所述计算节点服务器包括运行状态汇报模块,其用于将其自身运行状态信息自动汇报至主控节点服务器;
所述主控节点服务器包括:
任务初始化分配模块,其用于接收流处理作业,按照给定的参考并发度以及集群中可用资源及流处理作业的自身结构,生成初始任务分配方案;及
信息汇聚模块,其用于接收节点服务器自身运行状态信息进行统一汇总及相应聚合操作;及
信息预测模块,其用于根据聚合操作后的信息预测下一时段的数据平均处理量以及相应资源占用值;及
分配方案动态生成模块,其用于动态调整在各个计算节点服务器的流处理作业,最终生成流任务动态分配方案并分配至相应计算节点服务器。
进一步的,所述主控节点服务器还包括:
分布式协调模块,其用于保存所有计算节点服务器上运行的流处理任务实例的最新的分配方案以及所有计算节点服务器的资源占用信息,为整个集群提供可靠稳定的记录存储。
进一步的,所述计算节点服务器,还包括:
动态方案应用模块,与分布式协调模块进行直接通信;
所述动态方案应用模块,用于采用事件驱动模型来检测当前分配任务是否发生变化,若是,则进行相应的改变。
其中,动态方案应用模块和运行状态汇报模块由于以分布式形式分散地运行于集群中的各个计算节点服务器中,为保证集群中节点服务器的同步,可采用NTP等方式进行时钟同步。
与现有技术相比,本发明的有益效果是:
(1)本发明的流处理作业调度系统,主要适用于长期运行且处理的数据量会发生变化的流处理系统中。可通过对现有流处理系统进行改造等形式进行应用,赋予流处理作业在运行时进行分配方案调整的能力,以提升集群整体的流处理业务容量和平均资源利用率。
(2)本发明能够在没有其他辅助信息的前提下,充分利用流处理作业自身的结构特性,减少初始化分配带来的通信开销,并为后续动态的调度提供调整空间。
(3)本发明能够根据流处理业务运行过程中的数据处理量及计算节点负载,利用历史信息及预测信息等多种信息来源,动态监控并调整任务分配策略。
(4)本发明能够在运行时,根据给定的不同任务分配方案,快速有效的对现有分配策略进行调整,并最小化调整过程对流处理作业整体带来的影响。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1是动态调整任务分配的流处理作业调度方法流程图。
图2为动态调整作业中任务分配的流处理作业调度系统的示意图。
图3为提交流处理作业的流程示意图。
图4为初始化任务分配的流程示意图。
图5为生成流任务动态分配方案的流程示意图。
图6为动态调度应用的流程示意图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、逻辑单元和/或它们的组合。
本发明的动态调整任务分配的流处理作业调度方法,该方法适用于分布式集群服务器中,所述分布式集群服务器包括一个主控节点服务器以及与其相互的通讯的若干个计算节点服务器。
图1是动态调整任务分配的流处理作业调度方法流程图。
如图1所示,该动态调整任务分配的流处理作业调度方法,包括:
步骤1:主控节点服务器接收流处理作业任务,按照给定的参考并发度以及集群中可用资源及流处理作业的自身结构,生成初始任务分配方案。
其中,主控节点服务器接收的流处理作业为有向无环图的形式。
图中每个点为执行处理流程的逻辑单元,边为逻辑单元之间进行数据传递的路径及分组策略。
本发明的主控节点服务器接收的流处理作业是由用户提交的。
图3为提交流处理作业的流程示意图,其具体过程如下:
(1)用户提交分布式流处理作业,同时携带有流处理作业任务中不同逻辑单元的初始并发度。
(2)主控节点服务器对用户提交的流处理作业的拓扑结构进行分析,以用户提供的初始并发度作为参考,生成初始化的任务分配方案。以该方案为初始化方案,应用至集群中,并启动相应流处理作业。
(3)在流处理作业运行过程中,定期收集作业运行信息及资源占用情况。集群中所有流处理计算节点服务器将收集的运行时信息统一发送至主控节点服务器进行信息汇总。信息的定期收集可通过定时器和NTP等授时服务结合使用,也可使用分布式协调模块控制,保证集群中所有节点汇报的频率一致,从而简化汇聚逻辑。汇报频率也可根据实际需求进行调整。
(4)主控节点服务器获取流处理作业的运行信息之后,对其下一时段的相应数据进行预测。利用汇聚及预测的数据,计算新的分配方案并应用。
具体地,如图4所示,主控节点服务器生成初始任务分配方案的过程,包括:
步骤1.1:分析接收的流处理作业任务的拓扑结构,利用搜索算法对流处理中逻辑单元进行排序,获取排序后列表;
步骤1.2:利用初始化并发度对上述排序列表按比例展开为任务实例列表;
步骤1.3:获取当前集群中可用的计算节点服务器及插槽,对当前集群中可用计算节点服务器按照插槽剩余数目进行升序排序;
步骤1.4:将任务实例列表按序分配至可用计算节点服务器上,完成第一步分配;
步骤1.5:寻找能够替换当前分配方案的计算节点服务器,使得所使用的计算节点服务器的空余插槽尽可能少,若有,执行替换并重复该步骤,直至完成;
步骤1.6:获得流处理作业的初始化分配方案。
这样本发明能够在没有其他辅助信息的前提下,充分利用流处理作业自身的结构特性,减少初始化分配带来的通信开销,并为后续动态的调度提供调整空间。
步骤2:在流处理业务运行过程中,各个计算节点服务器将其自身运行状态信息自动汇报至主控节点服务器,由主控节点服务器进行统一汇总及相应聚合操作。
步骤3:主控节点服务器根据聚合操作后的信息预测下一时段的数据平均处理量以及相应资源占用值,进而动态调整在各个计算节点服务器的流处理作业,最终生成流任务动态分配方案并分配至相应计算节点服务器。
主控节点服务器生成流任务动态分配方案的具体过程,如图5所示:
(1)使用定时器或事件触发等机制,令集群中所有流处理计算节点服务器统一采集并汇报其运行的流处理作业信息及资源占用。
(2)主控节点服务器对信息按组进行聚集并存储。
(3)主控节点服务器信息使用当前和历史信息,或辅以用户提供的关于数据量变化的信息描述,或采用默认的预测方式,对下一时段流处理作业的运行情况和资源使用率进行预测。
(4)主控节点服务器根据预测数据,检查是否违反物理资源约束,若违反,计算满足需求的相应流处理逻辑单元的并发度,作为新的并发度。
(5)主控节点服务器利用排队理论,将流数据处理过程看作是一系列排队的过程。因此,可利用排队时间,数据在逻辑单元上的处理时间以及逻辑单元之间的数据通信时间对数据计算整体时间进行估算。利用信息预测模块的数据量预测值,可通过排队理论计算整体排队时间,进而计算出数据流平均处理时间。
(6)若平均处理时间超出数据流处理作业的需求,则找到预测值与当前值变化最大的子路径,对其并发度进行增加调整,重复2,直至条件满足。
(7)主控节点服务器所获得的流处理的逻辑单元和新的并发度即为下一时段流处理作业的分配方案。
现结合图6对动态调整应用方法的执行流程进行描述。
主控节点服务器完成对新的任务分配方案的分配后,运行中的流处理作业按照新指定的任务分配方案进行调整,在主控节点服务器中进行以下步骤:
(1)对比更改前后的分配方案中任务并发度的改变,将其分为两个集合,分别是:并发度缩减集合和并发度增加集合。
(2)首先,调整并发度缩减集合中的流处理作业任务。调整采用如下策略:
a)对该流处理作业所占用的计算节点按照使用的插槽数目升序进行排序。
b)遍历每个计算节点,若仍有可减少的任务,则取消相应的插槽分配。
c)重复上一步骤,直至完成。
(3)然后,对并发度增加集合中的流处理作业的任务实例进行调整。调整采用如下策略:
a)对该流处理任务所占用的计算节点按照空余的插槽数目升序进行排序。
b)遍历每个计算节点,若有空余插槽,则增加在流处理任务中相近的一个任务实例。
c)重复上一步骤,直至完成。
d)若仍有未分配的任务,则从集群中选择空余资源最多的服务器,增加相应的任务。
e)重复上一步骤,直至全部完成。
(4)主控节点服务器完成上述任务和物理节点的重新分配后,将变更后的任务分配方案写入分布式协调模块中,广播至集群的各个节点。
(5)位于各个节点上的动态方案应用模块检测到任务分配方案变化,即时按照新的任务分配方案对位于该节点上的插槽进行任务分配调整。调整过程中不影响未变化的流处理任务实例所在节点,以保证流处理作业的运行效率。
其中,主控节点服务器根据预测数据,检查是否违反物理资源约束,若违反,计算满足需求的相应流处理逻辑单元的并发度,作为新的并发度。
本发明能够根据流处理作业运行过程中的数据处理量及计算节点负载,利用历史信息及预测信息等多种信息来源,动态监控并调整任务分配策略。
主控节点服务器还利用排队理论,将流数据处理过程看作是一系列排队的过程,数据在逻辑单元上的处理时间以及逻辑单元之间的数据通信时间对数据计算整体时间进行估算,利用信息预测模块的数据量预测值,通过排队理论计算整体排队时间,进而计算出数据流平均处理时间。
本发明根据给定的不同任务分配方案,快速有效的对现有分配策略进行调整,并最小化调整过程对流处理作业整体带来的影响。
在另一实施例中,该方法还包括:
实时存储生成的流任务动态分配方案,并采用事件驱动模型来检测当前分配任务是否发生变化,若是,则将变化后的流任务分配方案实时分配至相应计算节点服务器。
本发明赋予流处理作业在运行时进行分配方案调整的能力,以提升集群整体的流处理业务容量和平均资源利用率。
本发明还提供了一种动态调整作业中任务分配的流处理作业调度系统。
本发明的一种动态调整作业中任务分配的流处理作业调度系统,包括:
主控节点服务器,其被配置为接收流处理作业,按照给定的参考并发度以及集群中可用资源及流处理作业的自身结构,生成初始任务分配方案;
若干个分别与主控节点服务器相互通讯的计算节点服务器,在流处理业务运行过程中,计算节点服务器被配置为将其自身运行状态信息自动汇报至主控节点服务器,由主控节点服务器进行统一汇总及相应聚合操作;
主控节点服务器,还被配置为根据聚合操作后的信息预测下一时段的数据平均处理量以及相应资源占用值,进而动态调整在各个计算节点服务器的流处理任务实例,最终生成流任务动态分配方案并分配至相应计算节点服务器。
在一实施例中,主控节点服务器还被配置为:
分析接收的流处理作业的拓扑结构,利用搜索算法对流处理中逻辑单元进行排序,获取排序后列表;
利用初始化并发度对上述排序列表按比例展开为任务实例列表;
获取当前集群中可用的计算节点服务器及插槽,对当前集群中可用计算节点服务器按照插槽剩余数目进行升序排序;
将任务实例列表按序分配至可用计算节点服务器上,完成第一步分配;
寻找能够替换当前分配方案的计算节点服务器,使得所使用的计算节点服务器的空余插槽尽可能少,若有,执行替换并重复该步骤,直至完成;
获得流处理作业的任务初始化分配方案。
在一实施例中,主控节点服务器还被配置为:
根据预测数据,检查是否违反物理资源约束,若违反,计算满足需求的相应流处理逻辑单元的并发度,作为新的并发度。
在一实施例中,主控节点服务器还被配置为:
利用排队理论,将流数据处理过程看作是一系列排队的过程,数据在逻辑单元上的处理时间以及逻辑单元之间的数据通信时间对数据计算整体时间进行估算,利用信息预测模块的数据量预测值,通过排队理论计算整体排队时间,进而计算出数据流平均处理时间。
图2为动态调整作业中任务分配的流处理作业调度系统的示意图。
如图2所示,本发明的动态调整作业中任务分配的流处理作业调度系统,包括:主控节点服务器和若干个分别与主控节点服务器相互通讯的计算节点服务器。
所述主控节点服务器包括:
(1)任务初始化分配模块,其用于接收流处理作业,按照给定的参考并发度以及集群中可用资源及流处理作业的自身结构,生成初始任务分配方案。
具体地,初始化任务分配模块作为流处理作业提交后经过的初始化模块,其负责对流处理作业按照用户所提交的并发度进行分配并映射至物理节点,并将当前的任务分配方案写入分布式协调模块,为后续动态调度提供信息支持。
(2)信息汇聚模块,其用于接收节点服务器自身运行状态信息进行统一汇总及相应聚合操作。
该模块接受运行状态汇报模块所汇报的数据,并根据流处理的逻辑单元和计算节点服务器等信息进行汇聚。该模块部署于主控节点服务器上。可采用独立的进程部署或与流处理的主控节点服务器结合部署。在进行信息汇聚后,可对历史数据进行存储,为后续信息预测等模块提供数据支持。数据存储可采用key-value等nosql数据库持久化至内存或磁盘中。
(3)信息预测模块,其用于根据聚合操作后的信息预测下一时段的数据平均处理量以及相应资源占用值。
该模块根据当前汇报的信息和历史信息,对未来的数据量和资源使用进行预测。对信息的预测结果可同样进行持久化处理,为下一信息预测提供参考。具体预测算法可采用插件的形式进行扩展,以满足不同流处理作业所处理的数据变化形式。
(4)分配方案动态生成模块,其用于动态调整在各个计算节点服务器的流处理业务实例,最终生成流处理作业的动态分配方案并分配至相应计算节点服务器。
该模块利用信息汇聚模块和信息预测模块的数据信息,对当前运行的分配方案进行并发度的重新计算。同原有流处理作业的分配方案进行比对,对变化的任务分配映射至集群中的物理节点上。并将变化后的任务分配方案写入至分布式协调模块中。
其中,所述主控节点服务器还包括:
(5)分布式协调模块,其用于保存所有计算节点服务器上运行的流处理作业的最新的分配方案以及所有计算节点服务器的资源占用信息,为整个集群提供可靠稳定的记录存储。
分布式协调模块作为集群中保存流处理作业方案及集群信息。分布式协调模块需要足够稳定,可靠。该模块可基于zookeeper等现有逻辑单元及进行实现,采用分布式及选举的方式对相应数据进行保存及归档,以保证数据的一致性和可靠性。
所述计算节点服务器包括:
运行状态汇报模块,其用于将其自身运行状态信息自动汇报至主控节点服务器。本模块可通过对流处理程序进行改造,使该模块以一个线程或触发器的形式运行。定时获取所有流处理节点上的任务运行及资源占用等信息。将这些信息进行统一汇报。
所述计算节点服务器,还包括:
动态方案应用模块,与分布式协调模块进行直接通信;
所述动态方案应用模块,用于采用事件驱动模型来检测当前分配任务是否发生变化,若是,则进行相应的改变。
该模块感知分布式协调模块中的任务分配方案,并按照分配方案即时应用至物理节点上。实现上可将该模块作为流处理节点的另一新增线程,与分布式协调模块保持通信,通过调用流处理节点的管理函数,对任务进行停止或重新分配。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (9)

1.一种动态调整任务分配的流处理作业调度方法,其特征在于,该方法适用于分布式集群服务器中,所述分布式集群服务器包括一个主控节点服务器以及与其相互通讯的若干个计算节点服务器;
该动态调整任务分配的流处理作业调度方法,包括:
主控节点服务器接收流处理作业,按照给定的参考并发度以及集群中可用资源及流处理作业的自身结构,生成初始任务分配方案;
在流处理业务运行过程中,各个计算节点服务器将其自身运行状态信息自动汇报至主控节点服务器,由主控节点服务器进行统一汇总及相应聚合操作;
主控节点服务器根据聚合操作后的信息预测下一时段的数据平均处理量以及相应资源占用值,进而动态调整在各个计算节点服务器的流处理任务实例列表,最终生成流任务动态分配方案并分配至相应计算节点服务器;
主控节点服务器根据预测数据,检查是否违反物理资源约束,若违反,计算满足需求的相应流处理逻辑单元的并发度,作为新的并发度;
或/和
主控节点服务器利用排队理论,将流数据处理过程看作是一系列排队的过程,利用数据在逻辑单元上的处理时间以及逻辑单元之间的数据通信时间对数据计算整体时间进行估算,利用信息预测模块的数据量预测值,通过排队理论计算整体排队时间,进而计算出数据流平均处理时间。
2.如权利要求1所述的一种动态调整任务分配的流处理作业调度方法,其特征在于,该方法还包括:
实时存储生成的流任务动态分配方案,并采用事件驱动模型来检测当前分配任务是否发生变化,若是,则将变化后的流任务分配方案实时分配至相应计算节点服务器。
3.如权利要求1所述的动态调整任务分配的流处理作业调度方法,其特征在于,主控节点服务器接收的流处理作业为有向无环图的形式。
4.如权利要求3所述的动态调整任务分配的流处理作业调度方法,其特征在于,主控节点服务器生成初始任务分配方案的过程,包括:
步骤1.1:分析接收的流处理作业的拓扑结构,利用搜索算法对流处理中逻辑单元进行排序,获取排序后的列表;
步骤1.2:利用初始化并发度对上述排序后的列表按比例展开为任务实例列表;
步骤1.3:获取当前集群中可用的计算节点服务器及插槽,对当前集群中可用计算节点服务器按照插槽剩余数目进行升序排序;
步骤1.4:将任务实例列表按序分配至可用计算节点服务器上,完成第一步分配;
步骤1.5:寻找能够替换当前分配方案的计算节点服务器,使得所使用的计算节点服务器的空余插槽尽可能少,若有,执行替换并重复该步骤,直至完成;
步骤1.6:获得流处理作业的初始化分配方案。
5.一种动态调整作业中任务分配的流处理作业调度系统,其特征在于,包括:
主控节点服务器,其被配置为接收流处理作业,按照给定的参考并发度以及集群中可用资源及流处理作业的自身结构,生成初始任务分配方案;
若干个分别与主控节点服务器相互通讯的计算节点服务器,在流处理业务运行过程中,计算节点服务器被配置为将其自身运行状态信息自动汇报至主控节点服务器,由主控节点服务器进行统一汇总及相应聚合操作;
主控节点服务器,还被配置为根据聚合操作后的信息预测下一时段的数据平均处理量以及相应资源占用值,进而动态调整在各个计算节点服务器的流处理任务实例列表,最终生成流任务动态分配方案并分配至相应计算节点服务器;
主控节点服务器还被配置为:
根据预测数据,检查是否违反物理资源约束,若违反,计算满足需求的相应流处理逻辑单元的并发度,作为新的并发度;
或/和
主控节点服务器还被配置为:
利用排队理论,将流数据处理过程看作是一系列排队的过程,利用数据在逻辑单元上的处理时间以及逻辑单元之间的数据通信时间对数据计算整体时间进行估算,利用信息预测模块的数据量预测值,通过排队理论计算整体排队时间,进而计算出数据流平均处理时间。
6.如权利要求5所述的一种动态调整作业中任务分配的流处理作业调度系统,其特征在于,主控节点服务器还被配置为:
分析接收的流处理作业的拓扑结构,利用搜索算法对流处理中逻辑单元进行排序,获取排序后的列表;
利用初始化并发度对上述排序后的列表按比例展开为任务实例列表;
获取当前集群中可用的计算节点服务器及插槽,对当前集群中可用计算节点服务器按照插槽剩余数目进行升序排序;
将任务实例列表按序分配至可用计算节点服务器上,完成第一步分配;
寻找能够替换当前分配方案的计算节点服务器,使得所使用的计算节点服务器的空余插槽尽可能少,若有,执行替换并重复该步骤,直至完成;
获得流处理作业的初始化分配方案。
7.一种动态调整作业中任务分配的流处理作业调度系统,其特征在于,包括:主控节点服务器和若干个分别与主控节点服务器相互通讯的计算节点服务器;
所述计算节点服务器包括运行状态汇报模块,其用于将其自身运行状态信息自动汇报至主控节点服务器;
所述主控节点服务器包括:
任务初始化分配模块,其用于接收流处理作业,按照给定的参考并发度以及集群中可用资源及流处理作业的自身结构,生成初始任务分配方案;及
信息汇聚模块,其用于接收节点服务器自身运行状态信息进行统一汇总及相应聚合操作;及
信息预测模块,其用于根据聚合操作后的信息预测下一时段的数据平均处理量以及相应资源占用值;及
分配方案动态生成模块,其用于动态调整在各个计算节点服务器的流处理任务实例列表,最终生成流任务动态分配方案并分配至相应计算节点服务器;
主控节点服务器还被配置为:
根据预测数据,检查是否违反物理资源约束,若违反,计算满足需求的相应流处理逻辑单元的并发度,作为新的并发度;
或/和
主控节点服务器还被配置为:
利用排队理论,将流数据处理过程看作是一系列排队的过程,利用数据在逻辑单元上的处理时间以及逻辑单元之间的数据通信时间对数据计算整体时间进行估算,利用信息预测模块的数据量预测值,通过排队理论计算整体排队时间,进而计算出数据流平均处理时间。
8.如权利要求7所述的一种动态调整作业中任务分配的流处理作业调度系统,其特征在于,所述主控节点服务器还包括:
分布式协调模块,其用于保存所有计算节点服务器上运行的流处理作业的最新的分配方案以及所有计算节点服务器的资源占用信息,为整个集群提供可靠稳定的记录存储。
9.如权利要求8所述的一种动态调整作业中任务分配的流处理作业调度系统,其特征在于,所述计算节点服务器,还包括:
动态方案应用模块,与分布式协调模块进行直接通信;
所述动态方案应用模块,用于采用事件驱动模型来检测当前分配任务是否发生变化,若是,则进行相应的改变。
CN201710660801.4A 2017-08-04 2017-08-04 一种动态调整任务分配的流处理作业调度方法及系统 Active CN107580023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710660801.4A CN107580023B (zh) 2017-08-04 2017-08-04 一种动态调整任务分配的流处理作业调度方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710660801.4A CN107580023B (zh) 2017-08-04 2017-08-04 一种动态调整任务分配的流处理作业调度方法及系统

Publications (2)

Publication Number Publication Date
CN107580023A CN107580023A (zh) 2018-01-12
CN107580023B true CN107580023B (zh) 2020-05-12

Family

ID=61035653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710660801.4A Active CN107580023B (zh) 2017-08-04 2017-08-04 一种动态调整任务分配的流处理作业调度方法及系统

Country Status (1)

Country Link
CN (1) CN107580023B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321214A (zh) 2018-03-29 2019-10-11 阿里巴巴集团控股有限公司 一种数据查询方法、装置及设备
CN108549595B (zh) * 2018-04-18 2021-06-08 江苏物联网研究发展中心 一种计算系统状态信息动态采集方法及系统
CN110209549B (zh) * 2018-05-22 2022-02-22 腾讯科技(深圳)有限公司 数据处理方法、相关装置、相关设备和系统
CN110532085B (zh) * 2018-05-23 2022-11-04 阿里巴巴集团控股有限公司 一种调度方法和调度服务器
CN110661824B (zh) * 2018-06-28 2022-04-12 阿里巴巴集团控股有限公司 分布式集群中服务器的流量调控方法及存储介质
CN109597685B (zh) * 2018-09-30 2023-06-09 创新先进技术有限公司 任务分配方法、装置和服务器
CN109660633A (zh) * 2019-01-30 2019-04-19 北京云端智度科技有限公司 一种基于分布式调度机制的集群体系
CN110348681B (zh) * 2019-06-04 2022-02-18 国网浙江省电力有限公司衢州供电公司 一种电力cps动态负荷分配方法
CN110489221B (zh) * 2019-08-16 2023-10-20 云帐房网络科技有限公司 一种自动化任务数量动态调整计算资源的方法及系统
CN110543352B (zh) * 2019-08-16 2022-06-07 浙江大华技术股份有限公司 调度系统的任务分配方法及其相关的装置
CN110597626B (zh) * 2019-08-23 2022-09-06 第四范式(北京)技术有限公司 在分布式系统中资源及任务的分配方法、装置及系统
CN110908981A (zh) * 2019-10-23 2020-03-24 南方电网数字电网研究院有限公司 一种兼容多数据库的分布式数据质量控制方法及系统
CN111131080B (zh) * 2019-12-26 2021-09-07 电子科技大学 分布式深度学习流调度方法、系统、设备
CN111352872A (zh) * 2020-02-20 2020-06-30 北京字节跳动网络技术有限公司 执行引擎、数据处理方法、装置、电子设备和介质
CN111813528B (zh) * 2020-07-17 2023-04-18 公安部第三研究所 一种基于任务统计特性的视频大数据标准化汇聚网关系统及方法
CN111858064A (zh) * 2020-07-29 2020-10-30 山东有人信息技术有限公司 一种动态内存分配方法及系统
CN112416591B (zh) * 2020-11-25 2023-10-13 广州虎牙科技有限公司 分布式的任务处理方法、装置、设备、存储介质和系统
CN112416602B (zh) * 2020-12-10 2022-09-16 清华大学 一种分布式数据流资源弹性伸缩增强插件及增强方法
CN113342665B (zh) * 2021-06-17 2023-10-20 北京百度网讯科技有限公司 任务分配方法和装置、电子设备、计算机可读介质
CN113590331A (zh) * 2021-08-05 2021-11-02 山东派盟网络科技有限公司 一种任务处理方法、控制装置及存储介质
CN114844894A (zh) * 2022-04-29 2022-08-02 济南浪潮数据技术有限公司 一种服务器节点的数据传输方法、装置以及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073546A (zh) * 2010-12-13 2011-05-25 北京航空航天大学 一种云计算环境中分布式计算模式下的任务动态调度方法
CN102096602A (zh) * 2009-12-15 2011-06-15 中国移动通信集团公司 一种任务调度方法及其系统和设备
CN106844483A (zh) * 2016-12-23 2017-06-13 航天星图科技(北京)有限公司 一种日志数据流处理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9647880B2 (en) * 2011-11-04 2017-05-09 Nxp Usa, Inc. Real-time distributed network slave device, real-time distributed network and method therefor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102096602A (zh) * 2009-12-15 2011-06-15 中国移动通信集团公司 一种任务调度方法及其系统和设备
CN102073546A (zh) * 2010-12-13 2011-05-25 北京航空航天大学 一种云计算环境中分布式计算模式下的任务动态调度方法
CN106844483A (zh) * 2016-12-23 2017-06-13 航天星图科技(北京)有限公司 一种日志数据流处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Storm实时计算任务调度及负载均衡机制研究;王贤稳;《中国优秀硕士学位论文全文数据库信息科技辑》;20170315;正文第6-7,11-28,39-45页 *

Also Published As

Publication number Publication date
CN107580023A (zh) 2018-01-12

Similar Documents

Publication Publication Date Title
CN107580023B (zh) 一种动态调整任务分配的流处理作业调度方法及系统
WO2017166803A1 (zh) 一种资源调度方法及装置
CN107038069B (zh) Hadoop平台下动态标签匹配DLMS调度方法
US8943353B2 (en) Assigning nodes to jobs based on reliability factors
US8200824B2 (en) Optimized multi-component co-allocation scheduling with advanced reservations for data transfers and distributed jobs
CN106293893B (zh) 作业调度方法、装置及分布式系统
Jung et al. Synchronous parallel processing of big-data analytics services to optimize performance in federated clouds
CN102063336B (zh) 一种分布式计算多应用功能异步并发调度方法
CN111427681A (zh) 边缘计算中基于资源监控的实时任务匹配调度系统和方法
CN110858161A (zh) 资源分配方法、装置、系统、设备和介质
Wang et al. Workflow as a service in the cloud: architecture and scheduling algorithms
Chard et al. Cost-aware cloud provisioning
CN109343939B (zh) 一种分布式集群及并行计算任务调度方法
CN111625331B (zh) 任务调度方法、装置、平台、服务器及存储介质
CN105700948A (zh) 一种用于在集群中调度计算任务的方法与设备
CN111459641B (zh) 一种跨机房的任务调度和任务处理的方法及装置
US20160048413A1 (en) Parallel computer system, management apparatus, and control method for parallel computer system
Sathiyamoorthi et al. Adaptive fault tolerant resource allocation scheme for cloud computing environments
CN111861412B (zh) 面向完成时间优化的科学工作流调度方法及系统
CN112130966A (zh) 任务调度方法和系统
CN112685153A (zh) 微服务调度方法、装置以及电子设备
CN112799817A (zh) 一种微服务资源调度系统和方法
Luo et al. Erms: Efficient resource management for shared microservices with SLA guarantees
CN110084507B (zh) 云计算环境下分级感知的科学工作流调度优化方法
CN116010064A (zh) Dag作业调度和集群管理的方法、系统及装置

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