CN103763378A - 基于分布式流式计算系统的任务处理方法、系统及节点 - Google Patents

基于分布式流式计算系统的任务处理方法、系统及节点 Download PDF

Info

Publication number
CN103763378A
CN103763378A CN201410035705.7A CN201410035705A CN103763378A CN 103763378 A CN103763378 A CN 103763378A CN 201410035705 A CN201410035705 A CN 201410035705A CN 103763378 A CN103763378 A CN 103763378A
Authority
CN
China
Prior art keywords
node
working node
loading condition
working
extra
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
Application number
CN201410035705.7A
Other languages
English (en)
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 United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group 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 United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN201410035705.7A priority Critical patent/CN103763378A/zh
Publication of CN103763378A publication Critical patent/CN103763378A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于分布式流式计算系统的任务处理方法、系统及节点,包括各工作节点监控自身的状态并存储状态信息,同时,主节点定时获取各工作节点的状态信息;当主节点确定出存在超负载的工作节点时,通知未超负载的工作节点进行负载情况预测;主节点根据预测的负载情况,对超负载的工作节点的任务类型进行调整,以减轻该超负载的工作节点的负载。通过本发明方法,在分布式流式计算系统中的工作节点出现超负载时,主节点根据预测的未来各工作节点的负载情况,动态调整各工作节点所处理的任务类型,实现了集群各工作节点的动态负载均衡,达到了系统资源层面的负载均衡,从而提高了集群整体的最大处理能力。

Description

基于分布式流式计算系统的任务处理方法、系统及节点
技术领域
本发明涉及分布式流式计算技术,尤指一种基于分布式流式计算系统的任务处理方法、系统及节点。
背景技术
流式计算主要应用于对数据的即时处理、统计学习等功能中。随着互联网大数据的爆发,流式计算也采用更加高级的分布式计算方式来提高处理速度,称之为分布式流式计算系统。分布式流式计算系统中最具代表性的是Storm,其采用类似Hadoop Map/Reduce(Hadoop Map/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集)的数据处理方法,采用Zookeeper(ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括配置维护、名字服务、分布式同步、组服务等)作为分布式节点管理工具,将需要计算的任务分割为很多的小块,通过类似流(Tuple)的方式,使其经过不同的处理节点(Storm称之为Bolt),最后汇聚到一个节点,形成处理结果。与Map/Reduce不同的是,Storm的数据是“流入”方式即需要实时处理。
图1中以Storm为例的分布式流式计算系统,其他的系统类似,只是节点的命名可能不同,图1为现有技术中以Storm为例的分布式流式计算系统的结构示意图。在图1中,Storm集群由一个主节点和多个工作节点组成,其中主节点运行了Nimbus守护进程,用于分配给各工作节点工作代码、布置任务、工作检测等功能,下文中将主节点简称为Nimbus;工作节点运行Supervisor守护进程,用于监听工作,开始和终止工作进程,下文中将工作节点简称为Supervisor;Zookeeper并不是实际的节点,而是用于协调Nimbus和Supervisor两个工作进程的软件,主要用于管理集群中的不同组件。在工作节点Supervisor上运行流式计算数据源(逻辑)节点Sprout和数据处理(逻辑)节点Bolt。图2为图1中Storm的数据流处理过程示意图。
如图2所示,工作节点Supervisor上根据需要和用户设定的端口数量,可以开启一定数量的端口。每个端口能够执行一个任务(Task),每个端口称之为worker。图2中的Sprout和Bolt正是运行在worker上的,对于每一次的Tuple来说,Sprout和Bolt就是这次Tuple的Task。从图2可见:
每个Tuple(流)经过Sprout和几个Bolt之后,形成最终结果,如图2中的不同列的Bolt对应不同的处理,换句话说,就是同一列的Bolt是相同的处理过程(即下文提到的Bolt_typeN),只不过处理的Tuple(流)不同;
每个Sprout和Bolt都运行在Supervisor的不同端口上。在Sprout和Bolt的数量较多时,多个Sprout和Bolt可能运行在同一Supervisor端口上。也就是说,Sprout和Bolt对应Supervisor端口可以是多对一的关系。
在现有分布式流式计算系统中,默认的端口使用分配是:按照顺序进行分配。举例来看,假设系统中有3台工作节点Supervisor(分别表示为Supervisor1、Supervisor2和Supervisor3),每台设置有4个端口,则worker数量为4×3=12个。若设置Sprout有5个,Bolt(处理一)有4个,Bolt(处理二)有4个,Bolt(处理三)1个,那么按照顺序进行端口分配如下:Sprout有4个位于Supervisor1工作节点,另外一个Sprout位于Supervisor2工作节点上。3个Bolt(处理一)位于Supervisor2上,第4个Bolt(处理一)位于Supervisor3工作节点上,3个Bolt(处理二)位于Supervisor3上。此时Supervisor3的端口已使用完,那么,系统会重新从Supervisor1开始分配端口,此时,同一worker上就会同时运行多个Sprout和Bolt。
同时,在现有分布式流式计算系统中,某一Tuple(流)可能被设计为按照一定规则流向同一处理的不同Bolt。比如,按照字段分组(FieldsGrouping),随机分组(Shuffle Grouping)等规则,其中,Shuffle Grouping就是随机分发Stream中的tuple,保证每个Bolt的Task接收Tuple数量大致一致;Fields Grouping就是保证相同字段的Tuple分配到同一个Task中。这些规则都是基于Sprout和Bolt的,而并不考虑底层流式计算系统的工作节点(Supervisor)的情况。
分布式流式计算是将流式计算与分布式相结合,即在数据输入时,采用流式方式,而在处理时采用分布式处理,将数据分散到各个工作节点上进行处理。为了避免集群产生短板效应,实现集群的整体负载平衡至关重要。再以Storm为例,Storm中的Shuffle Grouping Tuple(流)的方式,其设计的目的是为了让每个Sprout或Blot能够负载均衡。
但是,由于Sprout和Bolt是运行于Supervisor工作节点的端口上的逻辑单元,Sprout和Bolt,与worker对应关系是多对一的关系,因此,不同worker的负载不同进而导致了worker所在的Supervisor负载差距很大;之外,在流式计算过程中,由于不同数据处理Bolt(处理N)的复杂度不同,现有采用的是顺序分配端口的方式,相同类型的Bolt可能分配到同一Supervisor工作节点上,这样,造成了不同工作节点负载不同;还有,Shuffle Grouping只能工作在特定的条件下,对于其它的Tuple(流)的方式并不能起到对Supervisor均衡的作用,在实际实验中发明人发现,如对于全局分组(Global Grouping)方式,即所有的Tuple都发送到同一个Task中,此时一般将当前Component的并发数目设置为1,这样,所有的Tuple会集中于同一worker即同一Supervisor上,导致了该Supervisor负载较高的问题。
发明内容
为了解决上述技术问题,本发明提供了一种基于分布式流式计算系统的任务处理方法、系统及节点,能够达到系统资源层面的负载均衡,从而提高集群整体的最大处理能力。
为了达到本发明目的,本发明提供了一种基于分布式流式计算系统的任务处理方法,在分布式流式计算系统的中,包括:
各工作节点监控自身的状态并存储状态信息,同时,主节点定时获取各工作节点的状态信息;
当主节点确定出存在超负载的工作节点时,通知未超负载的工作节点进行负载情况预测;
主节点根据预测的负载情况,对超负载的工作节点的任务类型进行调整。
所述主节点定时获取各工作节点的状态信息包括:
所述主节点按照预先设置的监测周期定期向各工作节点发送获取请求,以获取所述各工作节点的当前负载情况;
所述获取请求至少包括:工作节点的身份标识、获取请求标识位,以及负载情况。
所述各工作节点监控自身的状态并存储状态信息包括:
所述工作节点定期获取自身的负载情况,并将获得的负载情况以及自身端口上运行的任务类型存储在本地。
所述通知未超负载的工作节点进行负载情况预测包括:
所述主节点将所述获得的负载情况与预先设置的负载阈值进行比较,如果某工作节点的负载情况超过负载阈值,所述主节点向所述分布式流式计算系统中的未超负载的工作节点发送预测请求;
所述预测请求至少包括:工作节点的身份标识、获取请求标识位、负载情况,以及工作节点上运行的任务类型。
所述主节点根据预测的负载情况,对超负载的工作节点的任务类型进行调整包括:
所述主节点收到工作节点反馈的负载情况和任务类型后,基于工作节点的负载情况和就近原则,进行任务类型的再分配;
所述主节点完成任务类型再分配后,通过通知报文通知相应的工作节点进行端口上任务类型的调整。
所述负载情况包括工作节点的CPU使用情况,和/或工作节点的内存使用情况,和/或工作节点的带宽使用情况。
所述通知报文至少包括:工作节点的身份标识、通知请求标识位、需要更改的端口、停止的任务类型、重新开始的任务类型。
本发明还公开了一种基于分布式流式计算系统的任务处理系统,至少包括主节点、一个或一个以上工作节点;其中,
主节点,用于定时获取各工作节点的状态信息;确定出存在超负载的工作节点时,通知未超负载的工作节点进行负载情况预测;根据预测的负载情况,对超负载的工作节点的任务类型进行调整;
工作节点,用于监控自身的状态并存储状态信息;未超负载的工作节点接收到来自主节点的预测请求,进行负载情况预测并反馈给主节点;按照主节点的任务类型进行相应调整。
本发明又公开了一种主节点,位于分布式流式计算系统的任务处理系统中,用于定时获取所述分布式流式计算系统中的各工作节点的状态信息;确定出存在超负载的工作节点时,通知所述分布式流式计算系统中的未超负载的工作节点进行负载情况预测;根据预测的负载情况,对超负载的工作节点的任务类型进行调整。
本发明再公开了一种工作节点,位于分布式流式计算系统的任务处理系统中,用于监控自身的状态并存储状态信息;未超负载的工作节点接收到来自主所述分布式流式计算系统中的节点的预测请求,进行负载情况预测并反馈给主节点;按照所述分布式流式计算系统中的主节点的任务类型进行相应调整。
与现有技术相比,本发明包括各工作节点监控自身的状态并存储状态信息,同时,主节点定时获取各工作节点的状态信息;当主节点确定出存在超负载的工作节点时,通知未超负载的工作节点进行负载情况预测;主节点根据预测的负载情况,对超负载的工作节点的任务类型进行调整,以减轻该超负载的工作节点的负载。通过本发明方法,在分布式流式计算系统中的工作节点出现超负载时,主节点根据预测的未来各工作节点的负载情况,动态调整各工作节点所处理的任务类型,实现了集群各工作节点的动态负载均衡,达到了系统资源层面的负载均衡,从而提高了集群整体的最大处理能力。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为现有技术中以Storm为例的分布式流式计算系统的结构示意图;
图2为图1中Storm的数据流处理过程示意图;
图3为本发明基于分布式流式计算系统的任务处理方法的流程图;
图4(a)为本发明基于分布式流式计算系统的任务处理方法的实施例中,任务处理前的任务分配的示意图;
图4(b)为本发明基于分布式流式计算系统的任务处理方法的实施例中,任务处理后的任务分配的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图3为本发明基于分布式流式计算系统的任务处理方法的流程图,如图3所示,包括以下步骤:
步骤300:各工作节点监控自身的状态并存储状态信息,同时,主节点定时获取各工作节点的状态信息。
本步骤中,主节点定时获取各工作节点的状态信息包括:
分布式流式计算系统启动后,主节点会按照预先设置的监测周期定期向各工作节点发送获取请求,以获取各工作节点的当前负载情况。通常,按照实际系统的不同灵敏度,可以设置不同的监测周期,一般可以设置为1分钟(min)。获取请求可以如表1所示。
参数名称 参数说明
ID 工作节点的身份标识,用于区分不同的工作节点。
Type 获取请求标识位,用于标识请求的类型,如值=0。
CPUUsed_ 工作节点的CPU使用情况,百分比(%),请求的参数
Memory_Used 工作节点的内存使用情况,百分比(%),请求的参数
NetUsed_ 工作节点的带宽占用情况,百分比(%),请求的参数
表1
本步骤中,各工作节点监控自身的状态并存储状态信息包括:
工作节点定期获取自身的负载情况,比如包括CPU使用情况、内存使用情况、带宽占用情况等,并将获得的负载情况以及自身端口上运行的任务类型存储在本地。存储的时间间隔和数量,可根据系统需要进行设定,比如:一般时间间隔为1min,存储数量为60,即存储最近1小时内的工作节点负载状态。具体存储格式可以如表2所示:
Figure BDA0000461771120000071
表2
需要说明的是,工作节点是知道其端口上的任务类型的,但是,在现有技术中,每个工作节点的端口上运行的任务类型由主节点在任务初始化时分配,在流式计算过程中,端口上的任务类型不再会发生变化;而在本发明提供的任务处理方法中,由于对工作节点负载的实时动态调整,工作节点的端口上的任务类型可能随着时间发生变化,因此,各工作节点需要存储自身端口上的一定时间段内的任务类型。
工作节点在接收到获取请求后,会将自身的状态信息反馈给主节点,其中状态信息至少包括:负载情况和任务类型。此时,主节点并不存储反馈的信息,只是与预先设置的负载阈值进行比较,如果某工作节点超过负载阈值,那么,主节点会执行步骤301,即继续通知未超负载的工作节点进行负载情况预测。
步骤301:当主节点确定出存在超负载的工作节点时,通知未超负载的工作节点进行负载情况预测。
本步骤中,当工作节点确定出存在工作节点超负载时,会向未超负载的工作节点发送预测请求。预测请求的具体格式可以如表3所示:
参数名称 参数说明
ID 工作节点的身份标识,用于区分不同的工作节点。
Type 预测请求标识位,用于标识请求的类型,如值=1。
CPUUsed_ 工作节点的CPU使用情况,百分比(%),请求的参数
Memory_Used 工作节点的内存使用情况,百分比(%),请求的参数
NetUsed_ 工作节点的带宽占用情况,百分比(%),请求的参数
Worker 工作节点上运行的所有worker列表,请求的参数
表3
未超负载的工作节点将请求预测的参数信息反馈给主节点,与表1不同之处在于,预测请求的标识位Type=1,另外,添加了Worker字段,这样未超负载的工作节点会将自身各端口上运行的不同类型任务如Bolt和Sprout,反馈给主节点。
对于分布式流式计算系统,其流入的数据如Sprout具有类似的属性,也就是说,工作节点上处理的流入数据所占用的资源是一个稳定的正态分布。由于在工作节点中已按照预先设置的监控周期,存储有自身的如1小时(60个记录点)的负载情况样本,因此能够预测该工作节点整体的负载情况。
根据正态分布3σ原理,P(μ-3σ<x≤μ+3σ)=99.7%,即正态分布在(μ-3σ<x≤μ+3σ]外的概率不到0.3%,几乎不可能发生,称为小概率事件。而在本发明中,工作节点只需要保证上限,P(x≤μ+3σ)其概率约为99.85%,因此,只要选取(μ+3σ)就是该工作节点未来负载最大值。
因此,工作节点在接收到预测请求后,对之前存储的样本记录进行计算,求得均值μ和标准差σ;再将(μ+3σ)向上取整,即得到预测的未来该工作节点可能的最大负载,这里的最大负载可以包括CPU最大负载、内存最大负载、带宽最大负载,即分别按照上述正态预测的方法,分别预测工作节点的CPU最大负载、内存最大负载、带宽最大负载。
本步骤中,采用正态预测的方法,是为了估计整体值,有效防止了瞬间值而造成的系统的反复调整。
在实际应用中,也可以选取多组进行预测后再获取最大值,这样提高了预测精度。工作节点将获得的预测参数的最大值反馈给工作节点。
步骤302:主节点根据预测的负载情况,对超负载的工作节点的任务类型进行调整,以减轻该超负载的工作节点的负载。
主节点收到工作节点反馈的负载情况和任务类型后,基于工作节点的负载情况和就近原则,进行任务类型的再分配。主节点完成任务类型再分配后,会通知相应的工作节点进行端口上任务类型的调整。下面结合以具体实施例对本步骤进行详细描述。
图4(a)为本发明基于分布式流式计算系统的任务处理方法的实施例中,任务处理前的任务分配的示意图,如图4(a)所示,以Storm为例,Nimbus设置为定时获取各工作节点Supervisor的状态信息(负载情况和任务类型),并对Sprout和Bolt分配到Supervisor的不同端口上进行管理,这里的任务是指包括不同类型的Sprout、Bolt;在各Supervisor上设置监控各自的负载情况,并存储一段时间内该Supervisor的状态,即图4(a)中SupervisorPortN:worker(Bolt_typeN)。
本实施例中,假设Nimbus获得各Supervisor的工作节点状态后,判断出Supervisor1超负载。那么,Nimbus从剩余的Supervisor中选出未来最“空闲”的两个Supervisor节点作为候选任务再分配工作节点。这里,由于在基于分布式流式计算系统中,不同类型任务的距离远近对于整个系统的负载状况是有影响的(也就是“就近原则”),而这个不同任务类型的上下关系,无法从Supervisor的负载(CPU、内存、带宽)上体现出来。因此,本发明在筛选空闲Supervisor时,选取两个Supervisor即多加入一个备选的Supervisor,为后面“就近原则”提供准备,实际是一个考虑两个方面因素的折中方案。需要说明的是,也可以选多个Supervisor作为备选,但是计算量也会相应增大。
本实施例中,假设根据正态预测方法得出负载最轻即最“空闲”的两个Supervisor为Supervisor2和Supervisor3。这里,最空闲的Supervisor是由Nimbus进行排序后得到的,排序的方式就是将每台未超载的Supervisor反馈的(CPU、内存、带宽)三个负载值进行求和后再排序,总和最小的,即为最“空闲”的Supervisor。
如图4(a)所示,Supervisor2中Bolt的类型含有Bolt_type2和Bolt_type3,而Supervisor3中Bolt的类型含有Bolt_type4和Bolt_type5。如果Supervisor3的整体“空余”程度大于Supervisor2,假设为Supervisor3负载总额<(Supervisor2负载总额×90%),可以优先选择Supervisor3作为任务再分配对象;如果Supervisor3负载总额>(Supervisor2负载总额×90%),可以选择Supervisor2作为任务再分配对象。
因为,从图2所示的Tuple(流)的处理路径来看,当一种类型Bolt处理完成后,Tuple(流)会进入到下一种类型的Bolt当中,Supervisor2当中含有Bolt_type3,正是Supervisor中Bolt_type2的下个处理单元,如果将Supervisor2当中含有Bolt_type3交换到Supervisor1则能够极大降低网络带宽负载。即为“就近原则”。具体来讲,交换过程中,从待交换的工作节点Supervisor2的worker当中,选取Bolt_type类型最多的worker当中的一个进行交换,因为当前Supervisor中worker运行最多的Bolt_type类型最有可能是复杂的处理。从图4(a)中,也就是将Supervisor2中的其中一个(如按照worker运行Bolt_type的端口顺序,将该任务类型Bolt_type下的端口号最小的那个)Bolt_type3处理类型与Supervisor1当中Bolt_type1理类型进行更换,更换后如图4(b)所示,如图4(b)中的加粗斜体字所示。
其中,worker运行最多的Bolt_type判断为复杂的处理,是因为相同的Bolt_type可能运行在不同的Supervisor上。以图4(b)为例,如果超载的Supervisor1上运行少的Bolt_type2是复杂任务类型,那么,Supervisor2运行了两个,更应该超载(实际未超载),也就是说,基于反向判断,worker上运行最多的Bolt_type为复杂处理。以上只是其中一种实现方式,并不用于限定本发明的保护范围。比如,在具体实现过程中,也可以通过获得每个端口的负载来进行负载均衡分析,以提高调整的准确性,在本发明提供的方法基础上,对与本领域技术人员来说是容易想到的,这里不再赘述。
如果待交换的Supervisor中,不同类型Bolt_type的数量相同,那么,可以采用“就近原则”,即将按照Tuple(流)经过的顺序的Bolt_typeN中,距离最近的进行交换。
具体实现过程中,为了追求调节的更高精度,在Supervisor进行监控并记录负载时,可以具体到每个worker(Bolt_type)的负载情况,进而实现更精确的调整。
Nimbus主节点筛选完成后,会通知相应的Supervisor进行端口上Bolt_type的调整。通知报文可以如表4所示:
参数名称 参数说明
ID 工作节点的身份标识,用于区分不同的工作节点。
Type 通知请求标识位,用于标识请求的类型,如值=2。
Port 需要更改的端口
Stop_type 停止的Bolt_type类型
Start_type 重新开始的Bolt_type类型
表4
为了防止在Tuple(流)过程中,更改Supervisor端口引发的数据处理错误,Nimbus会先找到所有的Sprout,并通过Supervisor将其暂停挂起。直到集群内的数据处理完成后,再向相应的Supervisor发送更改请求。Nimbus收到200OK更改成功响应后,再重新启动所有的Sprout。这样就完成了对分布式流式计算系统的任务类型调整。
这里,通过“就近原则”处理后,节省网络带宽的说明如下,假设Bolt_type2与Bolt_type3是相关联的两个任务,数据Tuple被Bolt_type2处理完后,会“流向”Bolt_type3进行处理。如果两个任务即Bolt_type2和Bolt_type3位于不同的Supervisor,那么,Tuple需要通过局域网,这样就会占用网络带宽,但是,要是两个任务即Bolt_type2和Bolt_type3位于同一个Supervisor上,那么,只需要在服务器内部转移数据即可,而不需要占用带宽,如图4(b)所示,交换了Bolt_type1和Bolt_type3后,Supervisor1上Bolt_type2和Bolt_type3就只需要在服务器内部转移数据。这样经过若干次任务再分配后,会在保证负载平衡的前提下,使得Supervisor间数据转移量达到最小,也就实现了系统带宽占用最小。
需要说明的是,步骤302是将超载的工作节点上的任务类型与未超载的工作节点上的任务类型进行调整,且在任务调整过程中会暂停整个基于分布式流式计算系统中的工作。因此,在主节点上,只要采用精确的时间单位就能够区分不同超载工作节点,主节点是能够区分其进入超负载的先后顺序的,假设工作节点1比工作节点2先超负载;而在进行负载状态预测时,主节点从基于分布式流式计算系统中的除工作节点1和工作节点2之外的剩余的工作节点中进行挑选,并进行工作节点1端口上的任务类型调整;调整完成后,再按照同样的过程完成对工作节点2端口上的任务类型调整。也就是说,对于超负载的工作节点,主节点是能够区分先后顺序进行逐个调整的。
本发明方法改变了现有技术中不考虑底层流式计算系统的工作节点的情况,而对分布式流式计算系统中各节点负载均衡的计算到了系统资源层面(如CPU、内存、网络)的负载均衡。而且,本发明针对流式计算系统具有后验证性特点,采用动态调整负载分配的机制,达到了资源分配的最好效果,也避免了由于现有预先设置的负载分配而引起的分配不均的短板效应,从而降低了整个系统的处理能力。换句话说,通过本发明方法,在分布式流式计算系统中的工作节点出现超负载时,主节点根据预测的未来各工作节点的负载情况,动态调整各工作节点所处理的任务类型,实现了集群各工作节点的动态负载均衡,达到了系统资源层面的负载均衡,从而提高了集群整体的最大处理能力。
本发明还提供一种基于分布式流式计算系统的任务处理系统,至少包括主节点、一个或一个以上工作节点;其中,
主节点,用于定时获取各工作节点的状态信息;确定出存在超负载的工作节点时,通知未超负载的工作节点进行负载情况预测;根据预测的负载情况,对超负载的工作节点的任务类型进行调整;
工作节点,用于监控自身的状态并存储状态信息;未超负载的工作节点接收到来自主节点的预测请求,进行负载情况预测并反馈给主节点;按照主节点的任务类型进行相应调整。
其中,预测为正态预测。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (10)

1.一种基于分布式流式计算系统的任务处理方法,其特征在于,在分布式流式计算系统的中,包括:
各工作节点监控自身的状态并存储状态信息,同时,主节点定时获取各工作节点的状态信息;
当主节点确定出存在超负载的工作节点时,通知未超负载的工作节点进行负载情况预测;
主节点根据预测的负载情况,对超负载的工作节点的任务类型进行调整。
2.根据权利要求1所述的方法,其特征在于,所述主节点定时获取各工作节点的状态信息包括:
所述主节点按照预先设置的监测周期定期向各工作节点发送获取请求,以获取所述各工作节点的当前负载情况;
所述获取请求至少包括:工作节点的身份标识、获取请求标识位,以及负载情况。
3.根据权利要求1所述的方法,其特征在于,所述各工作节点监控自身的状态并存储状态信息包括:
所述工作节点定期获取自身的负载情况,并将获得的负载情况以及自身端口上运行的任务类型存储在本地。
4.根据权利要求1所述的方法,其特征在于,所述通知未超负载的工作节点进行负载情况预测包括:
所述主节点将所述获得的负载情况与预先设置的负载阈值进行比较,如果某工作节点的负载情况超过负载阈值,所述主节点向所述分布式流式计算系统中的未超负载的工作节点发送预测请求;
所述预测请求至少包括:工作节点的身份标识、获取请求标识位、负载情况,以及工作节点上运行的任务类型。
5.根据权利要求4所述的方法,其特征在于,所述主节点根据预测的负载情况,对超负载的工作节点的任务类型进行调整包括:
所述主节点收到工作节点反馈的负载情况和任务类型后,基于工作节点的负载情况和就近原则,进行任务类型的再分配;
所述主节点完成任务类型再分配后,通过通知报文通知相应的工作节点进行端口上任务类型的调整。
6.根据权利要求2~5任一项所述的方法,其特征在于,所述负载情况包括工作节点的CPU使用情况,和/或工作节点的内存使用情况,和/或工作节点的带宽使用情况。
7.根据权利要求5所述的方法,其特征在于,所述通知报文至少包括:工作节点的身份标识、通知请求标识位、需要更改的端口、停止的任务类型、重新开始的任务类型。
8.一种基于分布式流式计算系统的任务处理系统,其特征在于,至少包括主节点、一个或一个以上工作节点;其中,
主节点,用于定时获取各工作节点的状态信息;确定出存在超负载的工作节点时,通知未超负载的工作节点进行负载情况预测;根据预测的负载情况,对超负载的工作节点的任务类型进行调整;
工作节点,用于监控自身的状态并存储状态信息;未超负载的工作节点接收到来自主节点的预测请求,进行负载情况预测并反馈给主节点;按照主节点的任务类型进行相应调整。
9.一种主节点,其特征在于,位于分布式流式计算系统的任务处理系统中,用于定时获取所述分布式流式计算系统中的各工作节点的状态信息;确定出存在超负载的工作节点时,通知所述分布式流式计算系统中的未超负载的工作节点进行负载情况预测;根据预测的负载情况,对超负载的工作节点的任务类型进行调整。
10.一种工作节点,其特征在于,位于分布式流式计算系统的任务处理系统中,用于监控自身的状态并存储状态信息;未超负载的工作节点接收到来自主所述分布式流式计算系统中的节点的预测请求,进行负载情况预测并反馈给主节点;按照所述分布式流式计算系统中的主节点的任务类型进行相应调整。
CN201410035705.7A 2014-01-24 2014-01-24 基于分布式流式计算系统的任务处理方法、系统及节点 Pending CN103763378A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410035705.7A CN103763378A (zh) 2014-01-24 2014-01-24 基于分布式流式计算系统的任务处理方法、系统及节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410035705.7A CN103763378A (zh) 2014-01-24 2014-01-24 基于分布式流式计算系统的任务处理方法、系统及节点

Publications (1)

Publication Number Publication Date
CN103763378A true CN103763378A (zh) 2014-04-30

Family

ID=50530537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410035705.7A Pending CN103763378A (zh) 2014-01-24 2014-01-24 基于分布式流式计算系统的任务处理方法、系统及节点

Country Status (1)

Country Link
CN (1) CN103763378A (zh)

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103986766A (zh) * 2014-05-19 2014-08-13 中国工商银行股份有限公司 自适应负载均衡作业任务调度方法及装置
CN104714851A (zh) * 2015-03-30 2015-06-17 中国联合网络通信集团有限公司 一种实现资源分配的方法及装置
CN104796494A (zh) * 2015-05-08 2015-07-22 成都博元科技有限公司 一种云平台数据传输方法
CN104951427A (zh) * 2015-06-30 2015-09-30 深圳清华大学研究院 以矩阵为中心的分布式计算框架
WO2015192345A1 (zh) * 2014-06-18 2015-12-23 华为技术有限公司 一种数据处理装置及数据处理方法
CN105183540A (zh) * 2015-07-29 2015-12-23 青岛海尔智能家电科技有限公司 一种实时数据流处理的任务分配方法及系统
CN105204945A (zh) * 2015-09-28 2015-12-30 四川神琥科技有限公司 一种在大数据背景下的负载平衡装置
CN105204946A (zh) * 2015-09-28 2015-12-30 四川神琥科技有限公司 一种在大数据背景下的负载平衡方法
CN105262808A (zh) * 2015-09-28 2016-01-20 四川神琥科技有限公司 一种在大数据背景下的负载平衡系统
CN105306514A (zh) * 2014-07-30 2016-02-03 北京信威通信技术股份有限公司 基于Zookeeper的录音文件分布存储方法和系统
WO2016062087A1 (zh) * 2014-10-22 2016-04-28 华为技术有限公司 一种流式应用升级方法、主控节点及流计算系统
CN105630652A (zh) * 2016-02-02 2016-06-01 中国石油大学(华东) 一种面向实时大数据平台Storm的运行时三维可视化系统
CN105700947A (zh) * 2016-02-02 2016-06-22 中国石油大学(华东) 一种针对实时云环境Storm的提高网络资源利用率计算方法
CN105786626A (zh) * 2016-04-11 2016-07-20 南京邮电大学 基于K划分的Storm平台线程分配方法
CN105847358A (zh) * 2016-03-24 2016-08-10 广东三盟信息科技有限公司 一种云计算环境下大数据节点分布的实现方法及其系统
CN105956021A (zh) * 2016-04-22 2016-09-21 华中科技大学 一种适用于分布式机器学习的自动化任务并行的方法及其系统
CN106354722A (zh) * 2015-07-15 2017-01-25 阿里巴巴集团控股有限公司 一种流式计算系统的消息处理方法和装置
CN106371912A (zh) * 2015-07-21 2017-02-01 阿里巴巴集团控股有限公司 一种流式计算系统的资源调度方法和装置
CN106790636A (zh) * 2017-01-09 2017-05-31 上海承蓝科技股份有限公司 一种云计算服务器集群的均衡负载系统及方法
CN106844042A (zh) * 2016-12-29 2017-06-13 全球能源互联网研究院 电力ip多媒体子系统网络的数据处理方法以及处理装置
CN106878671A (zh) * 2016-12-29 2017-06-20 中国农业大学 一种养殖场多目标视频分析方法及其系统
CN106921754A (zh) * 2017-05-04 2017-07-04 泰康保险集团股份有限公司 集群系统的负载均衡方法、装置、介质和电子设备
CN106951082A (zh) * 2017-03-20 2017-07-14 福州大学 一种基于Storm的P300实时分布式计算方法
CN107360235A (zh) * 2017-07-17 2017-11-17 广东工业大学 一种基于可靠性分级的任务迁移方法
CN107766157A (zh) * 2017-11-02 2018-03-06 山东浪潮云服务信息科技有限公司 基于国产cpu和os的分布式容器集群框架实现方法
CN107888517A (zh) * 2016-09-30 2018-04-06 华为技术有限公司 一种为主机划域的方法及设备
CN107959705A (zh) * 2016-10-18 2018-04-24 阿里巴巴集团控股有限公司 流式计算任务的分配方法和控制服务器
CN108304255A (zh) * 2017-12-29 2018-07-20 北京城市网邻信息技术有限公司 分布式任务调度方法及装置、电子设备及可读存储介质
CN109450711A (zh) * 2018-12-21 2019-03-08 广州华多网络科技有限公司 分布式系统中主节点的选取方法、装置、系统及存储介质
CN109522100A (zh) * 2017-09-19 2019-03-26 阿里巴巴集团控股有限公司 实时计算任务调整方法和装置
CN109639794A (zh) * 2018-12-10 2019-04-16 杭州数梦工场科技有限公司 一种有状态集群恢复方法、装置、设备及可读存储介质
CN109684051A (zh) * 2018-12-17 2019-04-26 杭州玳数科技有限公司 一种混合式大数据任务异步提交的方法和系统
CN110109756A (zh) * 2019-04-28 2019-08-09 北京永信至诚科技股份有限公司 一种网络靶场构建方法、系统及存储介质
CN110399214A (zh) * 2019-05-30 2019-11-01 腾讯科技(深圳)有限公司 一种优化显卡负载的方法、装置及计算机设备
CN111459653A (zh) * 2019-01-22 2020-07-28 阿里巴巴集团控股有限公司 集群调度方法、装置和系统以及电子设备
CN112395140A (zh) * 2020-11-17 2021-02-23 平安科技(深圳)有限公司 去中心化的任务调度方法、装置、设备及介质
WO2021036936A1 (zh) * 2019-08-23 2021-03-04 第四范式(北京)技术有限公司 在分布式系统中资源及任务的分配方法、装置及系统
CN112527525A (zh) * 2020-12-11 2021-03-19 广州伊智信息科技有限公司 基于消息队列的分布式事件总线处理方法、终端及介质
CN112887407A (zh) * 2021-01-26 2021-06-01 北京百度网讯科技有限公司 用于分布式集群的作业流量控制方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102130938A (zh) * 2010-12-03 2011-07-20 中国科学院软件研究所 一种面向Web应用宿主平台的资源供给方法
US20120166630A1 (en) * 2010-12-23 2012-06-28 Electronics And Telecommunications Research Institute Dynamic load balancing system and method thereof
CN103036800A (zh) * 2012-12-14 2013-04-10 北京高森明晨信息科技有限公司 虚拟机负载均衡系统、节点及方法
CN103368864A (zh) * 2013-07-31 2013-10-23 北京华易互动科技有限公司 一种基于c/s架构的智能负载均衡方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102130938A (zh) * 2010-12-03 2011-07-20 中国科学院软件研究所 一种面向Web应用宿主平台的资源供给方法
US20120166630A1 (en) * 2010-12-23 2012-06-28 Electronics And Telecommunications Research Institute Dynamic load balancing system and method thereof
CN103036800A (zh) * 2012-12-14 2013-04-10 北京高森明晨信息科技有限公司 虚拟机负载均衡系统、节点及方法
CN103368864A (zh) * 2013-07-31 2013-10-23 北京华易互动科技有限公司 一种基于c/s架构的智能负载均衡方法

Cited By (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103986766A (zh) * 2014-05-19 2014-08-13 中国工商银行股份有限公司 自适应负载均衡作业任务调度方法及装置
CN103986766B (zh) * 2014-05-19 2017-07-07 中国工商银行股份有限公司 自适应负载均衡作业任务调度方法及装置
CN105580341A (zh) * 2014-06-18 2016-05-11 华为技术有限公司 一种数据处理装置及数据处理方法
WO2015192345A1 (zh) * 2014-06-18 2015-12-23 华为技术有限公司 一种数据处理装置及数据处理方法
CN105306514A (zh) * 2014-07-30 2016-02-03 北京信威通信技术股份有限公司 基于Zookeeper的录音文件分布存储方法和系统
US10785272B2 (en) 2014-10-22 2020-09-22 Huawei Technologies Co., Ltd. Streaming application upgrading method, master node, and stream computing system
WO2016062087A1 (zh) * 2014-10-22 2016-04-28 华为技术有限公司 一种流式应用升级方法、主控节点及流计算系统
CN104714851A (zh) * 2015-03-30 2015-06-17 中国联合网络通信集团有限公司 一种实现资源分配的方法及装置
CN104714851B (zh) * 2015-03-30 2018-11-02 中国联合网络通信集团有限公司 一种实现资源分配的方法及装置
CN104796494A (zh) * 2015-05-08 2015-07-22 成都博元科技有限公司 一种云平台数据传输方法
CN104951427A (zh) * 2015-06-30 2015-09-30 深圳清华大学研究院 以矩阵为中心的分布式计算框架
CN106354722B (zh) * 2015-07-15 2019-12-24 阿里巴巴集团控股有限公司 一种流式计算系统的消息处理方法和装置
CN106354722A (zh) * 2015-07-15 2017-01-25 阿里巴巴集团控股有限公司 一种流式计算系统的消息处理方法和装置
CN106371912B (zh) * 2015-07-21 2019-11-26 阿里巴巴集团控股有限公司 一种流式计算系统的资源调度方法和装置
CN106371912A (zh) * 2015-07-21 2017-02-01 阿里巴巴集团控股有限公司 一种流式计算系统的资源调度方法和装置
CN105183540A (zh) * 2015-07-29 2015-12-23 青岛海尔智能家电科技有限公司 一种实时数据流处理的任务分配方法及系统
CN105204945A (zh) * 2015-09-28 2015-12-30 四川神琥科技有限公司 一种在大数据背景下的负载平衡装置
CN105262808A (zh) * 2015-09-28 2016-01-20 四川神琥科技有限公司 一种在大数据背景下的负载平衡系统
CN105204946B (zh) * 2015-09-28 2019-09-13 四川神琥科技有限公司 一种在大数据背景下的负载平衡方法
CN105204945B (zh) * 2015-09-28 2019-07-23 四川神琥科技有限公司 一种在大数据背景下的负载平衡装置
CN105204946A (zh) * 2015-09-28 2015-12-30 四川神琥科技有限公司 一种在大数据背景下的负载平衡方法
CN105262808B (zh) * 2015-09-28 2019-01-25 四川神琥科技有限公司 一种在大数据背景下的负载平衡系统
CN105700947A (zh) * 2016-02-02 2016-06-22 中国石油大学(华东) 一种针对实时云环境Storm的提高网络资源利用率计算方法
CN105630652A (zh) * 2016-02-02 2016-06-01 中国石油大学(华东) 一种面向实时大数据平台Storm的运行时三维可视化系统
CN105847358A (zh) * 2016-03-24 2016-08-10 广东三盟信息科技有限公司 一种云计算环境下大数据节点分布的实现方法及其系统
CN105786626A (zh) * 2016-04-11 2016-07-20 南京邮电大学 基于K划分的Storm平台线程分配方法
CN105786626B (zh) * 2016-04-11 2019-02-19 南京邮电大学 基于K划分的Storm平台线程分配方法
CN105956021A (zh) * 2016-04-22 2016-09-21 华中科技大学 一种适用于分布式机器学习的自动化任务并行的方法及其系统
CN105956021B (zh) * 2016-04-22 2019-05-21 华中科技大学 一种适用于分布式机器学习的自动化任务并行的方法及其系统
CN107888517A (zh) * 2016-09-30 2018-04-06 华为技术有限公司 一种为主机划域的方法及设备
CN107888517B (zh) * 2016-09-30 2020-08-14 华为技术有限公司 一种为主机划域的方法及设备
CN107959705B (zh) * 2016-10-18 2021-08-20 阿里巴巴集团控股有限公司 流式计算任务的分配方法和控制服务器
CN107959705A (zh) * 2016-10-18 2018-04-24 阿里巴巴集团控股有限公司 流式计算任务的分配方法和控制服务器
CN106878671A (zh) * 2016-12-29 2017-06-20 中国农业大学 一种养殖场多目标视频分析方法及其系统
CN106878671B (zh) * 2016-12-29 2019-07-26 中国农业大学 一种养殖场多目标视频分析方法及其系统
CN106844042A (zh) * 2016-12-29 2017-06-13 全球能源互联网研究院 电力ip多媒体子系统网络的数据处理方法以及处理装置
CN106790636A (zh) * 2017-01-09 2017-05-31 上海承蓝科技股份有限公司 一种云计算服务器集群的均衡负载系统及方法
CN106951082A (zh) * 2017-03-20 2017-07-14 福州大学 一种基于Storm的P300实时分布式计算方法
CN106951082B (zh) * 2017-03-20 2019-12-17 福州大学 一种基于Storm的P300实时分布式计算方法
CN106921754A (zh) * 2017-05-04 2017-07-04 泰康保险集团股份有限公司 集群系统的负载均衡方法、装置、介质和电子设备
CN106921754B (zh) * 2017-05-04 2020-07-28 泰康保险集团股份有限公司 集群系统的负载均衡方法、装置、介质和电子设备
CN107360235B (zh) * 2017-07-17 2020-10-27 广东工业大学 一种基于可靠性分级的任务迁移方法
CN107360235A (zh) * 2017-07-17 2017-11-17 广东工业大学 一种基于可靠性分级的任务迁移方法
CN109522100A (zh) * 2017-09-19 2019-03-26 阿里巴巴集团控股有限公司 实时计算任务调整方法和装置
CN109522100B (zh) * 2017-09-19 2023-03-31 阿里巴巴集团控股有限公司 实时计算任务调整方法和装置
CN107766157A (zh) * 2017-11-02 2018-03-06 山东浪潮云服务信息科技有限公司 基于国产cpu和os的分布式容器集群框架实现方法
CN108304255A (zh) * 2017-12-29 2018-07-20 北京城市网邻信息技术有限公司 分布式任务调度方法及装置、电子设备及可读存储介质
CN109639794A (zh) * 2018-12-10 2019-04-16 杭州数梦工场科技有限公司 一种有状态集群恢复方法、装置、设备及可读存储介质
CN109639794B (zh) * 2018-12-10 2021-07-13 杭州数梦工场科技有限公司 一种有状态集群恢复方法、装置、设备及可读存储介质
CN109684051B (zh) * 2018-12-17 2020-08-11 杭州玳数科技有限公司 一种混合式大数据任务异步提交的方法和系统
CN109684051A (zh) * 2018-12-17 2019-04-26 杭州玳数科技有限公司 一种混合式大数据任务异步提交的方法和系统
CN109450711A (zh) * 2018-12-21 2019-03-08 广州华多网络科技有限公司 分布式系统中主节点的选取方法、装置、系统及存储介质
CN109450711B (zh) * 2018-12-21 2022-05-20 广州方硅信息技术有限公司 分布式系统中主节点的选取方法、装置、系统及存储介质
CN111459653A (zh) * 2019-01-22 2020-07-28 阿里巴巴集团控股有限公司 集群调度方法、装置和系统以及电子设备
CN111459653B (zh) * 2019-01-22 2023-05-05 阿里巴巴集团控股有限公司 集群调度方法、装置和系统以及电子设备
CN110109756A (zh) * 2019-04-28 2019-08-09 北京永信至诚科技股份有限公司 一种网络靶场构建方法、系统及存储介质
CN110399214A (zh) * 2019-05-30 2019-11-01 腾讯科技(深圳)有限公司 一种优化显卡负载的方法、装置及计算机设备
CN110399214B (zh) * 2019-05-30 2024-03-22 腾讯科技(深圳)有限公司 一种优化显卡负载的方法、装置及计算机设备
WO2021036936A1 (zh) * 2019-08-23 2021-03-04 第四范式(北京)技术有限公司 在分布式系统中资源及任务的分配方法、装置及系统
CN112395140A (zh) * 2020-11-17 2021-02-23 平安科技(深圳)有限公司 去中心化的任务调度方法、装置、设备及介质
CN112527525A (zh) * 2020-12-11 2021-03-19 广州伊智信息科技有限公司 基于消息队列的分布式事件总线处理方法、终端及介质
CN112527525B (zh) * 2020-12-11 2024-04-02 广州伊智信息科技有限公司 基于消息队列的分布式事件总线处理方法、终端及介质
CN112887407A (zh) * 2021-01-26 2021-06-01 北京百度网讯科技有限公司 用于分布式集群的作业流量控制方法和装置

Similar Documents

Publication Publication Date Title
CN103763378A (zh) 基于分布式流式计算系统的任务处理方法、系统及节点
CN108009016B (zh) 一种资源负载均衡控制方法及集群调度器
US10474504B2 (en) Distributed node intra-group task scheduling method and system
WO2021104096A1 (zh) 容器云环境下的任务调度方法、装置、服务器及存储装置
JP6241300B2 (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
CN103729248B (zh) 一种基于缓存感知的确定待迁移任务的方法和装置
KR20170029263A (ko) 부하 분산 장치 및 방법
US20130339759A1 (en) Method and system for automated application layer power management solution for serverside applications
CN102724103A (zh) 代理服务器、分层次网络系统及分布式工作负载管理方法
JP2012079242A (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US20170201434A1 (en) Resource usage data collection within a distributed processing framework
CN106411558A (zh) 一种数据流量限制的方法及系统
CN108121599A (zh) 一种资源管理方法、装置及系统
CN103136322A (zh) 用于配置查询的装置和方法
JP2017037492A (ja) 分散処理プログラム、分散処理方法および分散処理装置
Hu et al. Job scheduling without prior information in big data processing systems
Convolbo et al. DRASH: A data replication-aware scheduler in geo-distributed data centers
US10892940B2 (en) Scalable statistics and analytics mechanisms in cloud networking
CN115658311A (zh) 一种资源的调度方法、装置、设备和介质
CN109032769A (zh) 一种基于容器的持续集成ci任务处理方法及装置
CN111930516B (zh) 一种负载均衡方法及相关装置
CN108027760B (zh) 数据存储设备监视的方法及系统
US20210004675A1 (en) Predictive apparatus and method for predicting workload group metrics of a workload management system of a database system
JP2014063449A (ja) リソース管理システム、リソース管理方法及びリソース管理プログラム
CN112685157B (zh) 任务处理方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140430

WD01 Invention patent application deemed withdrawn after publication