CN105404554A - 用于Storm流计算框架的方法和装置 - Google Patents
用于Storm流计算框架的方法和装置 Download PDFInfo
- Publication number
- CN105404554A CN105404554A CN201510888693.7A CN201510888693A CN105404554A CN 105404554 A CN105404554 A CN 105404554A CN 201510888693 A CN201510888693 A CN 201510888693A CN 105404554 A CN105404554 A CN 105404554A
- Authority
- CN
- China
- Prior art keywords
- processing components
- concurrent thread
- time period
- workload
- process concurrent
- 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.)
- Granted
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种用于Storm流计算框架的方法和装置。Storm流计算框架包括多个处理组件,多个处理组件设置有多个处理并发线程,所述方法包括:分别统计多个处理组件中的每个处理组件在多个时间段中的每个时间段内的工作量,得到工作量历史规律;以及根据工作量历史规律来调整每个时间段内多个处理并发线程在多个处理组件之间的数量配比,使得在每个时间段内,多个处理并发线程中的任意两个处理并发线程的工作量的比率处于预定的阈值范围内。本发明基于统计的工作量的历史规律,动态地调整处理组件之间的并发线程的数量配比,以使处理组件的并发线程以更优的拓扑进行分布,从而能够充分地利用集群的计算资源,提高了执行效率。
Description
技术领域
本发明涉及计算机领域,具体地,涉及一种用于Storm流计算框架的方法和装置。
背景技术
Storm是一个分布式的实时计算***,可以方便地在一个计算机集群中编写与扩展复杂的实时计算。Storm流计算框架具有灵活的处理流程构建、高效的分布式并行以及透明容错等特点,能够有效地提高实时流处理应用的开发效率,成为产业界快速构建实时流计算应用的首选。
Storm中应用对数据流的处理逻辑被定义在拓扑(Topology)中,每一个拓扑由多个组件组成,这些组件包括输入源组件(Spout)和处理组件(Bolt)。输入源组件从输入源读取数据并向拓扑里面发出消息(tuple),而处理组件将来自输入源组件的消息进行处理(例如,过滤、聚合、查询数据库等操作),产生并输出新的消息。
在Storm流的分布式计算框架的相关技术中,处理组件的处理并发线程数通常是通过硬编码来设置的。这样,写入代码提交以后配置给各个处理组件的处理并发线程数是固定的。在实际运行中,可能有的处理并发线程非常繁忙,而有的处理并发线程非常空闲,出现集群资源不能够有效利用的情况。
发明内容
本发明的目的是提供一种能够有效利用集群资源的用于Storm流计算框架的方法和装置。
为了实现上述目的,本发明提供一种用于Storm流计算框架的方法,所述Storm流计算框架包括多个处理组件,所述多个处理组件设置有多个处理并发线程,所述方法包括:分别统计所述多个处理组件中的每个处理组件在多个时间段中的每个时间段内的工作量,得到工作量历史规律;以及根据所述工作量历史规律来调整所述每个时间段内所述多个处理并发线程在所述多个处理组件之间的数量配比,使得在所述每个时间段内,所述多个处理并发线程中的任意两个处理并发线程的工作量的比率处于预定的阈值范围内。
优选地,所述工作量包括接收的消息数量和/或处理消息所花费的时间。
优选地,所述多个处理组件包括第一处理组件和第二处理组件,所述根据所述工作量历史规律来调整所述每个时间段内所述多个处理并发线程在所述多个处理组件之间的数量配比的步骤包括:根据所述每个时间段内第一平均工作量与第二平均工作量的比率来调整对应的时间段内所述多个处理并发线程在所述第一处理组件与所述第二处理组件之间的数量配比,其中,所述第一平均工作量为所述第一处理组件中的处理并发线程的平均工作量,所述第二平均工作量为所述第二处理组件中的处理并发线程的平均工作量。
优选地,所述根据所述每个时间段内第一平均工作量与第二平均工作量的比率来调整对应的时间段内所述多个处理并发线程在所述第一处理组件与所述第二处理组件之间的数量配比的步骤包括:在所述多个时间段中的一个时间段内所述第一平均工作量与所述第二平均工作量的比率大于预定的比率阈值的情况下,在所述第一处理组件中增加预定数量的处理并发线程,并在所述第二处理组件中减少所述预定数量的处理并发线程。
优选地,所述多个处理组件包括第一处理组件和第二处理组件,所述根据所述工作量历史规律来调整所述每个时间段内所述多个处理并发线程在所述多个处理组件之间的数量配比的步骤包括:根据所述每个时间段内所述第一处理组件的工作量与所述第二处理组件的工作量的比率来调整对应的时间段内所述多个处理并发线程在所述第一处理组件与所述第二处理组件之间的数量配比。
优选地,所述根据所述每个时间段内所述第一处理组件的工作量与所述第二处理组件的工作量的比率来调整对应的时间段内所述多个处理并发线程在所述第一处理组件与所述第二处理组件之间的数量配比的步骤包括:在所述多个时间段中的一个时间段内工作量比率与处理并发线程数比率的比率大于预定的比率阈值的情况下,在所述第一处理组件中增加预定数量的处理并发线程,并在所述第二处理组件中减少所述预定数量的处理并发线程,其中,所述工作量比率为所述第一处理组件的工作量与所述第二处理组件的工作量的比率,所述处理并发线程数比率为所述第一处理组件的处理并发线程数与所述第二处理组件的处理并发线程数的比率。
优选地,所述多个处理组件设置在多个服务器上,所述方法还包括:统计所述多个服务器中的每个服务器的资源使用率;以及将所增加的处理并发线程设置在所述多个服务器中资源使用率最低的服务器中。
优选地,所述Storm流计算框架还包括输入源组件,所述输入源组件设置有多个输入源并发线程,所述多个输入源并发线程中的每个输入源并发线程分别读取相应的数据并将所读取的数据进行发送,所述方法还包括:分别确定所述多个输入源并发线程中的每个输入源并发线程所读取的数据所在的服务器;以及分别将所述每个输入源并发线程设置在各自所读取的数据所在的服务器中。
本发明还提供一种用于Storm流计算框架的装置,所述Storm流计算框架包括多个处理组件,所述多个处理组件设置有多个处理并发线程,所述装置包括:工作量统计模块,用于分别统计所述多个处理组件中的每个处理组件在多个时间段中的每个时间段内的工作量,得到工作量历史规律;以及调整模块,用于根据所述工作量历史规律来调整所述每个时间段内所述多个处理并发线程在所述多个处理组件之间的数量配比,使得在所述每个时间段内,所述多个处理并发线程中的任意两个处理并发线程的工作量的比率处于预定的阈值范围内。
通过上述技术方案,能够基于统计的工作量历史规律,动态地调整多个处理组件之间的处理并发线程的数量配比,以使处理组件的处理并发线程以更优的拓扑进行分布,从而能够充分地利用集群的计算资源,提高了执行效率。
本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是一示例性实施方式提供的用于Storm流计算框架的方法的流程图;
图2是一示例性实施方式提供的处理组件的工作量历史规律的曲线图;
图3是另一示例性实施方式提供的用于Storm流计算框架的方法的流程图;
图4是又一示例性实施方式提供的用于Storm流计算框架的方法的流程图;
图5是又一示例性实施方式提供的用于Storm流计算框架的方法的流程图;
图6是又一示例性实施方式提供的用于Storm流计算框架的方法的流程图;
图7是又一示例性实施方式提供的用于Storm流计算框架的方法的流程图;
图8是又一示例性实施方式提供的用于Storm流计算框架的方法的流程图;
图9是一示例性实施方式提供的用于Storm流计算框架的装置的结构框图;
图10是另一示例性实施方式提供的用于Storm流计算框架的装置的结构框图;
图11是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图;
图12是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图;
图13是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图;
图14是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图;以及
图15是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
在相关技术中,Storm流计算框架可以包括多个处理组件,所述多个处理组件可以设置有多个处理并发线程。图1是一示例性实施方式提供的用于Storm流计算框架的方法的流程图。如图1所示,所述方法包括以下步骤。
在步骤S11中,分别统计多个处理组件中的每个处理组件在多个时间段中的每个时间段内的工作量,得到工作量历史规律。
其中,Storm流计算框架中还可以包括多个输入源组件,处理组件可以接收输入源组件发送的消息,并对接收的消息进行处理。因此,处理组件的工作量可以包括接收的消息数量和/或处理消息所花费的时间。接收的消息数量越多,则表示工作量越多,接收的消息数量越少,则表示工作量越少。处理消息所花费的时间越长,则表示工作量越多,处理消息所花费的时间越短,则表示工作量越少。也可以对两个因素进行综合考虑。例如,对消息数量和花费时间分别赋予一定的权重,将二者加权求和得到工作量。
另外,多个时间段可以为一天中的多个时间段。例如,可以把一天中的每一个小时作为一个时间段来统计。这样,经过一定历史时间(例如,10天)的统计,可以得到能够反映用户在所统计的历史时间中使用习惯的处理组件的工作量历史规律。
图2是一示例性实施方式提供的处理组件的工作量历史规律的曲线图。如图2所示,所述多个处理组件包括第一处理组件和第二处理组件。该曲线图中统计了第一处理组件和第二处理组件在从6:00到18:00中每一个小时内的工作量(接收的消息数量)。从曲线图可以看出,在12:00到13:00的时间段内,第一处理组件统计的工作量达到1000,而第二处理组件统计的工作量不足100。另外,在17:00到18:00的时间段内,第一处理组件统计的工作量不足100,而第二处理组件统计的工作量超过了1400。经过例如10天的统计,每天的规律都与图2中相似,因此,图2中的曲线能够代表处理组件的工作量历史规律。处理组件的工作量历史规律反映出用户在一天中的使用习惯。
根据相关技术,多个处理并发线程数在第一处理组件和第二处理组件之间的的数量配比是固定不变的。而固定的配比在具有图2所示的历史规律的情况下必然会在某一些时间段内,处理并发线程的工作量差异较大。也就是,一些线程特别繁忙,而另一些线程特别空闲。以下详细描述如何根据所得到的历史工作规律来调整处理并发线程的数量配比。
在步骤S12中,根据工作量历史规律来调整每个时间段内多个处理并发线程在多个处理组件之间的数量配比,使得在每个时间段内,多个处理并发线程中的任意两个处理并发线程的工作量的比率处于预定的阈值范围内。
也就是,在确定每个处理组件的工作量历史规律之后,再考虑到每个处理组件中已经设置的处理并发线程数,就可以确定每个处理并发线程的繁忙程度(工作量)的历史规律。根据这些历史规律,在之后进行的计算当中,到某一时间段就根据该时间段的历史工作量规律来重新设置该时间段内多个处理并发线程在多个处理组件之间的数量配比。该重新设置的数量配比能够使得任意两个处理并发线程的工作量的比率处于预定的阈值范围内。
其中,预定的阈值范围可以根据对集群资源利用率的要求来设置,任意两个处理并发线程的工作量的比率为1是最理想状况(即工作量相等),比率越大集群资源利用率越小。
通过上述技术方案,能够基于统计的工作量历史规律,动态地调整多个处理并发线程在多个处理组件之间的数量配比,以使处理组件的处理并发线程以更优的拓扑进行分布,从而能够充分地利用集群的计算资源,提高执行效率。
具体地,图3是另一示例性实施方式提供的用于Storm流计算框架的方法的流程图。如图3所示,在所述多个处理组件包括第一处理组件和第二处理组件的情况下,步骤S12可以包括步骤S121。在步骤S121中,根据每个时间段内第一平均工作量与第二平均工作量的比率来调整对应的时间段内多个处理并发线程在第一处理组件与第二处理组件之间的数量配比。其中,第一平均工作量为第一处理组件中的处理并发线程的平均工作量,第二平均工作量为第二处理组件中的处理并发线程的平均工作量。
其中,第一平均工作量反映了第一处理组件中的处理并发线程的繁忙程度,第二平均工作量反映了第二处理组件中的处理并发线程的繁忙程度。在第一平均工作量和第二平均工作量相同的情况下,所有处理并发线程的繁忙程度相同(工作量相同),无需调整。也就是,第一平均工作量和第二平均工作量的比率为1时,为集群资源能够有效利用的最理想状况。实际当中,可以在第一平均工作量和第二平均工作量差异较大的情况下进行调整。
可选地,步骤S121可以包括:在多个时间段中的一个时间段内第一平均工作量与第二平均工作量的比率大于预定的比率阈值的情况下,在第一处理组件中增加预定数量的处理并发线程,并在第二处理组件中减少所述预定数量的处理并发线程。
也就是,可以在第一平均工作量与第二平均工作量的比率小于或等于一个预定的阈值(例如,1.5)时不作调整,大于这个预定的阈值时,认为处理并发线程工作量的差异较大,再进行调整。
可以理解的是,上述预定的阈值能够使得:第一平均工作量与第二平均工作量的比率在小于或等于该预定的阈值的情况下,任意两个处理并发线程的工作量的比率处于预定的阈值范围内(步骤S12中)。
举例来说,一时间段内第一处理组件的工作量和第二处理组件的工作量分别是1000和400,而第一处理组件有2个处理并发线程,第二处理组件有5个处理并发线程。此时,第一平均工作量Q1为500(1000/2),第二平均工作量Q2为80(400/5)。第一平均工作量和第二平均工作量的比率Q1/Q2为6.25(500/80),超过了预定的阈值(例如为1.50),则可以将第一处理组件的处理并发线程数增加一个(预定数量),将第二处理组件的处理并发线程数减少一个(预定数量)。此时,第一处理组件有3个处理并发线程,第二处理组件有4个处理并发线程。调整之后,可以再次判断Q1/Q2是否仍然大于预定的阈值,直到Q1/Q2小于或等于所述预定的阈值为止。图4是该示例性实施方式提供的用于Storm流计算框架的方法的流程图。
图5是又一示例性实施方式提供的用于Storm流计算框架的方法的流程图。如图5所示,在所述多个处理组件包括第一处理组件和第二处理组件的情况下,步骤S12包括步骤S122。在步骤S122中,根据每个时间段内第一处理组件的工作量与第二处理组件的工作量的比率来调整对应的时间段内多个处理并发线程在第一处理组件与第二处理组件之间的数量配比。
其中,第一处理组件的工作量与第二处理组件的工作量的比率反映了第一处理组件的处理并发线程数与第二处理组件的处理并发线程数的理想的比率。处理并发线程在第一处理组件和第二处理组件之间的数量配比越接近于第一处理组件的工作量与第二处理组件的工作量的比率,则资源利用率越高。在第一处理组件与第二处理组件的工作量的比率与处理并发线程数的比率相等的情况下,多个处理并发线程的工作量相等,繁忙程度相同,资源利用率最高,这是理想的状况。在实际当中,多个处理并发线程的工作量不一定能够完全相等,只能使多个处理并发线程的工作量尽可能地相当。
可选地,步骤S122可以包括:在多个时间段中的一个时间段内工作量比率与处理并发线程数比率的比率大于预定的比率阈值的情况下,在第一处理组件中增加预定数量的处理并发线程,并在第二处理组件中减少所述预定数量的处理并发线程。其中,工作量比率为第一处理组件的工作量与第二处理组件的工作量的比率,处理并发线程数比率为第一处理组件的处理并发线程数与第二处理组件的处理并发线程数的比率。
也就是,可以在第一处理组件与第二处理组件的工作量的比率和处理并发线程数的比率之间的比率小于或等于一个预定的阈值(例如,1.5)时不作调整,大于这个预定的阈值时,认为处理并发线程工作量的差异较大,再进行调整。
可以理解的是,上述预定的阈值能够使得:工作量比率与处理并发线程数比率的比率在小于或等于该预定的阈值的情况下,任意两个处理并发线程的工作量的比率处于预定的阈值范围内(步骤S12中)。
举例来说,一时间段内第一处理组件的工作量和第二处理组件的工作量分别是1000和200,第一处理组件有4个处理并发线程,第二处理组件有2个处理并发线程。此时,工作量比率Q3为5(1000/200),处理并发线程数比率Q4为2(4/2)。也就是,第一处理组件的工作量是第二处理组件的工作量的5倍,而第一处理组件的处理并发线程数只有第二处理组件的处理并发线程数的2倍。Q3/Q4为2.5(5/2),超过了预定的阈值(例如为1.50),则可以将第一处理组件的处理并发线程数增加一个(预定数量),将第二处理组件的处理并发线程数减少一个(预定数量)。此时,第一处理组件有5个处理并发线程,第二处理组件有1个处理并发线程。调整之后,可以再次确认工作量比率与处理并发线程数比率的比率是否仍然大于预定的阈值,直到工作量比率与处理并发线程数比率的比率小于或等于所述预定的阈值。图6是该示例性实施方式提供的用于Storm流计算框架的方法的流程图。
在Storm流计算框架中,多个处理组件设置在多个服务器上。在调整处理并发线程的数量配比时,在一处理组件中新增加的处理并发线程理论上可以设置在任一服务器中。为了增加整个集群的资源利用率,可以将新增加的处理并发线程设置在资源使用率较低的服务器中。图7是又一示例性实施方式提供的用于Storm流计算框架的方法的流程图。如图7所示,所述方法还包括以下步骤。
在步骤S13中,统计多个服务器中的每个服务器的资源使用率。
在步骤S14中,将所增加的处理并发线程设置在多个服务器中资源使用率最低的服务器中。
其中,所述服务器的资源可以包括硬件和软件上的资源,例如,程序、数据、存储器、输入输出设备、CPU等。这样,通过调度新增加的处理并发线程在资源使用率最低的服务器中启动,能够使服务器的资源使用率趋于平均,从而增加了集群的有效率用率。
另外,Storm流计算框架还可以包括输入源组件。在很多情况下,Storm输入源也是以分布式形态存在的,如HDFS、HBase、kafka等,这些***将数据分散送到不同的服务器上。输入源组件可以设置有多个输入源并发线程。多个输入源并发线程中的每个输入源并发线程分别读取相应的数据并将所读取的数据进行发送(发送至处理组件)。图8是又一示例性实施方式提供的用于Storm流计算框架的方法的流程图。如图8所示,所述方法还包括以下步骤。
在步骤S15中,分别确定多个输入源并发线程中的每个输入源并发线程所读取的数据所在的服务器。
在步骤S16中,分别将每个输入源并发线程设置在各自所读取的数据所在的服务器中。
这样,输入源组件的输入源并发线程启动在所读取的数据所在的服务器中,能够从本地读取数据发送到拓扑中进行计算,避免了通过网络读取不同服务器节点上的数据,提高了Storm流计算框架处理消息的效率。
本发明还提供一种用于Storm流计算框架的装置。图9是一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。所述Storm流计算框架包括多个处理组件,所述多个处理组件设置有多个处理并发线程。如图9所示,所述装置可以包括工作量统计模块11和调整模块12。
工作量统计模块11用于分别统计多个处理组件中的每个处理组件在多个时间段中的每个时间段内的工作量,得到工作量历史规律。
调整模块12用于根据工作量历史规律来调整每个时间段内多个处理并发线程在多个处理组件之间的数量配比,使得在每个时间段内,多个处理并发线程中的任意两个处理并发线程的工作量的比率处于预定的阈值范围内。
可选地,工作量可以包括接收的消息数量和/或处理消息所花费的时间。
图10是另一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。多个处理组件包括第一处理组件和第二处理组件。如图10所示,调整模块12可以包括第一调整单元121。
第一调整单元121用于根据每个时间段内第一平均工作量与第二平均工作量的比率来调整对应的时间段内多个处理并发线程在第一处理组件与第二处理组件之间的数量配比,使得在每个时间段内,多个处理并发线程中的任意两个处理并发线程的工作量的比率处于预定的阈值范围内。其中,第一平均工作量为第一处理组件中的处理并发线程的平均工作量,第二平均工作量为第二处理组件中的处理并发线程的平均工作量。
图11是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。如图11所示,第一调整单元121可以包括第一调整子单元1211。
第一调整子单元1211用于在多个时间段中的一个时间段内第一平均工作量与第二平均工作量的比率大于预定的比率阈值的情况下,在第一处理组件中增加预定数量的处理并发线程,并在第二处理组件中减少所述预定数量的处理并发线程。
图12是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。如图12所示,多个处理组件包括第一处理组件和第二处理组件,调整模块12可以包括第二调整单元122。
第二调整单元122用于根据每个时间段内第一处理组件与第二处理组件的工作量的比率来调整对应的时间段内多个处理并发线程在第一处理组件与第二处理组件之间的数量配比,使得在每个时间段内,多个处理并发线程中的任意两个处理并发线程的工作量的比率处于预定的阈值范围内。
图13是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。如图13所示,第二调整单元122可以包括第二调整子单元1221。
第二调整子单元1221用于在多个时间段中的一个时间段内第一处理组件与第二处理组件的工作量的比率大于预定的比率阈值的情况下,在第一处理组件中增加预定数量的处理并发线程,并在第二处理组件中减少预定数量的处理并发线程。
图14是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。如图14所示,多个处理组件设置在多个服务器上,所述装置还可以包括使用率统计模块13和第一设置模块14。
使用率统计模块13用于统计多个服务器中的每个服务器的资源使用率。
第一设置模块14用于将所增加的处理并发线程设置在多个服务器中资源使用率最低的服务器中。
Storm流计算框架还包括输入源组件,输入源组件设置有多个输入源并发线程,多个输入源并发线程中的每个输入源并发线程分别读取相应的数据并将所读取的数据进行发送。图15是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。如图15所示,所述装置还可以包括服务器确定模块15和第二设置模块16。
服务器确定模块15用于分别确定多个输入源并发线程中的每个输入源并发线程所读取的数据所在的服务器。
第二设置模块16用于分别将每个输入源并发线程设置在各自所读取的数据所在的服务器中。
本发明的用于Storm流计算框架的装置对应于本发明的用于Storm流计算框架的方法,因此相同的内容不再赘述。
通过上述技术方案,能够基于统计的工作量历史规律,动态地调整多个处理组件之间的处理并发线程的数量配比,以使处理组件的处理并发线程以更优的拓扑进行分布,从而能够充分地利用集群的计算资源,提高了执行效率。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (16)
1.一种用于Storm流计算框架的方法,所述Storm流计算框架包括多个处理组件,所述多个处理组件设置有多个处理并发线程,所述方法包括:
分别统计所述多个处理组件中的每个处理组件在多个时间段中的每个时间段内的工作量,得到工作量历史规律;以及
根据所述工作量历史规律来调整所述每个时间段内所述多个处理并发线程在所述多个处理组件之间的数量配比,使得在所述每个时间段内,所述多个处理并发线程中的任意两个处理并发线程的工作量的比率处于预定的阈值范围内。
2.根据权利要求1所述的方法,其特征在于,所述工作量包括接收的消息数量和/或处理消息所花费的时间。
3.根据权利要求1所述的方法,其特征在于,所述多个处理组件包括第一处理组件和第二处理组件,所述根据所述工作量历史规律来调整所述每个时间段内所述多个处理并发线程在所述多个处理组件之间的数量配比的步骤包括:
根据所述每个时间段内第一平均工作量与第二平均工作量的比率来调整对应的时间段内所述多个处理并发线程在所述第一处理组件与所述第二处理组件之间的数量配比,其中,所述第一平均工作量为所述第一处理组件中的处理并发线程的平均工作量,所述第二平均工作量为所述第二处理组件中的处理并发线程的平均工作量。
4.根据权利要求3所述的方法,其特征在于,所述根据所述每个时间段内第一平均工作量与第二平均工作量的比率来调整对应的时间段内所述多个处理并发线程在所述第一处理组件与所述第二处理组件之间的数量配比的步骤包括:
在所述多个时间段中的一个时间段内所述第一平均工作量与所述第二平均工作量的比率大于预定的比率阈值的情况下,在所述第一处理组件中增加预定数量的处理并发线程,并在所述第二处理组件中减少所述预定数量的处理并发线程。
5.根据权利要求1所述的方法,其特征在于,所述多个处理组件包括第一处理组件和第二处理组件,所述根据所述工作量历史规律来调整所述每个时间段内所述多个处理并发线程在所述多个处理组件之间的数量配比的步骤包括:
根据所述每个时间段内所述第一处理组件的工作量与所述第二处理组件的工作量的比率来调整对应的时间段内所述多个处理并发线程在所述第一处理组件与所述第二处理组件之间的数量配比。
6.根据权利要求5所述的方法,其特征在于,所述根据所述每个时间段内所述第一处理组件的工作量与所述第二处理组件的工作量的比率来调整对应的时间段内所述多个处理并发线程在所述第一处理组件与所述第二处理组件之间的数量配比的步骤包括:
在所述多个时间段中的一个时间段内工作量比率与处理并发线程数比率的比率大于预定的比率阈值的情况下,在所述第一处理组件中增加预定数量的处理并发线程,并在所述第二处理组件中减少所述预定数量的处理并发线程,其中,所述工作量比率为所述第一处理组件的工作量与所述第二处理组件的工作量的比率,所述处理并发线程数比率为所述第一处理组件的处理并发线程数与所述第二处理组件的处理并发线程数的比率。
7.根据权利要求4或6所述的方法,其特征在于,所述多个处理组件设置在多个服务器上,所述方法还包括:
统计所述多个服务器中的每个服务器的资源使用率;以及
将所增加的处理并发线程设置在所述多个服务器中资源使用率最低的服务器中。
8.根据权利要求1所述的方法,其特征在于,所述Storm流计算框架还包括输入源组件,所述输入源组件设置有多个输入源并发线程,所述多个输入源并发线程中的每个输入源并发线程分别读取相应的数据并将所读取的数据进行发送,所述方法还包括:
分别确定所述多个输入源并发线程中的每个输入源并发线程所读取的数据所在的服务器;以及
分别将所述每个输入源并发线程设置在各自所读取的数据所在的服务器中。
9.一种用于Storm流计算框架的装置,所述Storm流计算框架包括多个处理组件,所述多个处理组件设置有多个处理并发线程,所述装置包括:
工作量统计模块,用于分别统计所述多个处理组件中的每个处理组件在多个时间段中的每个时间段内的工作量,得到工作量历史规律;以及
调整模块,用于根据所述工作量历史规律来调整所述每个时间段内所述多个处理并发线程在所述多个处理组件之间的数量配比,使得在所述每个时间段内,所述多个处理并发线程中的任意两个处理并发线程的工作量的比率处于预定的阈值范围内。
10.根据权利要求9所述的装置,其特征在于,所述工作量包括接收的消息数量和/或处理消息所花费的时间。
11.根据权利要求9所述的装置,其特征在于,所述多个处理组件包括第一处理组件和第二处理组件,所述调整模块包括:
第一调整单元,用于根据所述每个时间段内第一平均工作量与第二平均工作量的比率来调整对应的时间段内所述多个处理并发线程在所述第一处理组件与所述第二处理组件之间的数量配比,其中,所述第一平均工作量为所述第一处理组件中的处理并发线程的平均工作量,所述第二平均工作量为所述第二处理组件中的处理并发线程的平均工作量。
12.根据权利要求11所述的装置,其特征在于,所述第一调整单元包括:
第一调整子单元,用于在所述多个时间段中的一个时间段内所述第一平均工作量与所述第二平均工作量的比率大于预定的比率阈值的情况下,在所述第一处理组件中增加预定数量的处理并发线程,并在所述第二处理组件中减少所述预定数量的处理并发线程。
13.根据权利要求9所述的装置,其特征在于,所述多个处理组件包括第一处理组件和第二处理组件,所述调整模块包括:
第二调整单元,用于根据所述每个时间段内所述第一处理组件与所述第二处理组件的工作量的比率来调整对应的时间段内所述多个处理并发线程在所述第一处理组件与所述第二处理组件之间的数量配比。
14.根据权利要求13所述的装置,其特征在于,所述第二调整单元包括:
第二调整子单元,用于在所述多个时间段中的一个时间段内所述第一处理组件与所述第二处理组件的工作量的比率大于预定的比率阈值的情况下,在所述第一处理组件中增加预定数量的处理并发线程,并在所述第二处理组件中减少所述预定数量的处理并发线程。
15.根据权利要求12或14所述的装置,其特征在于,所述多个处理组件设置在多个服务器上,所述装置还包括:
使用率统计模块,用于统计所述多个服务器中的每个服务器的资源使用率;以及
第一设置模块,用于将所增加的处理并发线程设置在所述多个服务器中资源使用率最低的服务器中。
16.根据权利要求9所述的装置,其特征在于,所述Storm流计算框架还包括输入源组件,所述输入源组件设置有多个输入源并发线程,所述多个输入源并发线程中的每个输入源并发线程分别读取相应的数据并将所读取的数据进行发送,所述装置还包括:
服务器确定模块,用于分别确定所述多个输入源并发线程中的每个输入源并发线程所读取的数据所在的服务器;以及
第二设置模块,用于分别将所述每个输入源并发线程设置在各自所读取的数据所在的服务器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510888693.7A CN105404554B (zh) | 2015-12-04 | 2015-12-04 | 用于Storm流计算框架的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510888693.7A CN105404554B (zh) | 2015-12-04 | 2015-12-04 | 用于Storm流计算框架的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105404554A true CN105404554A (zh) | 2016-03-16 |
CN105404554B CN105404554B (zh) | 2019-09-13 |
Family
ID=55470053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510888693.7A Active CN105404554B (zh) | 2015-12-04 | 2015-12-04 | 用于Storm流计算框架的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105404554B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786626A (zh) * | 2016-04-11 | 2016-07-20 | 南京邮电大学 | 基于K划分的Storm平台线程分配方法 |
CN105930216A (zh) * | 2016-04-15 | 2016-09-07 | 平安科技(深圳)有限公司 | 电子签名***自动排配方法、***及服务器 |
CN107680144A (zh) * | 2017-10-16 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种WebP文件转换的方法及装置 |
CN108153584A (zh) * | 2016-12-02 | 2018-06-12 | 百度在线网络技术(北京)有限公司 | 一种用于确定目标网络设备需分配的线程数的方法与设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013108149A1 (en) * | 2012-01-17 | 2013-07-25 | International Business Machines Corporation | Managing workload distribution among a plurality of compute nodes |
CN103595651A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于分布式的数据流处理方法和*** |
CN104077189A (zh) * | 2013-03-29 | 2014-10-01 | 西门子公司 | 一种用于资源分配的方法和装置 |
CN104881326A (zh) * | 2015-05-26 | 2015-09-02 | 上海帝联信息科技股份有限公司 | 日志文件处理方法及装置 |
CN104899079A (zh) * | 2014-03-05 | 2015-09-09 | 阿里巴巴集团控股有限公司 | 一种数据处理的方法及装置 |
CN104951372A (zh) * | 2015-06-16 | 2015-09-30 | 北京工业大学 | 一种基于预测的Map/Reduce数据处理平台内存资源动态分配方法 |
-
2015
- 2015-12-04 CN CN201510888693.7A patent/CN105404554B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013108149A1 (en) * | 2012-01-17 | 2013-07-25 | International Business Machines Corporation | Managing workload distribution among a plurality of compute nodes |
CN104077189A (zh) * | 2013-03-29 | 2014-10-01 | 西门子公司 | 一种用于资源分配的方法和装置 |
CN103595651A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于分布式的数据流处理方法和*** |
CN104899079A (zh) * | 2014-03-05 | 2015-09-09 | 阿里巴巴集团控股有限公司 | 一种数据处理的方法及装置 |
CN104881326A (zh) * | 2015-05-26 | 2015-09-02 | 上海帝联信息科技股份有限公司 | 日志文件处理方法及装置 |
CN104951372A (zh) * | 2015-06-16 | 2015-09-30 | 北京工业大学 | 一种基于预测的Map/Reduce数据处理平台内存资源动态分配方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786626A (zh) * | 2016-04-11 | 2016-07-20 | 南京邮电大学 | 基于K划分的Storm平台线程分配方法 |
CN105786626B (zh) * | 2016-04-11 | 2019-02-19 | 南京邮电大学 | 基于K划分的Storm平台线程分配方法 |
CN105930216A (zh) * | 2016-04-15 | 2016-09-07 | 平安科技(深圳)有限公司 | 电子签名***自动排配方法、***及服务器 |
CN108153584A (zh) * | 2016-12-02 | 2018-06-12 | 百度在线网络技术(北京)有限公司 | 一种用于确定目标网络设备需分配的线程数的方法与设备 |
CN108153584B (zh) * | 2016-12-02 | 2021-11-09 | 百度在线网络技术(北京)有限公司 | 一种用于确定目标网络设备需分配的线程数的方法与设备 |
CN107680144A (zh) * | 2017-10-16 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种WebP文件转换的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105404554B (zh) | 2019-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020515976A (ja) | ブロックチェーンコンセンサスのための方法、装置およびシステム | |
JP5744707B2 (ja) | メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ) | |
CN102859961B (zh) | 具有自适应的文件处理的分布式视频转码*** | |
CN105404554A (zh) | 用于Storm流计算框架的方法和装置 | |
CN108270805B (zh) | 用于数据处理的资源分配方法及装置 | |
Chauhan et al. | Performance evaluation of Yahoo! S4: A first look | |
CN105900064A (zh) | 调度数据流任务的方法和装置 | |
US9588813B1 (en) | Determining cost of service call | |
Farhat et al. | Stochastic modeling and optimization of stragglers | |
CN103164279A (zh) | 云计算资源分配方法和*** | |
CN103812949A (zh) | 一种面向实时云平台的任务调度与资源分配方法及*** | |
CN103701635A (zh) | 一种在线配置Hadoop参数的方法和装置 | |
CN103581336B (zh) | 基于云计算平台的业务流程调度方法及*** | |
CN105208133A (zh) | 一种服务器、负载均衡器以及服务器负载均衡方法和*** | |
CN103595651A (zh) | 基于分布式的数据流处理方法和*** | |
Choi et al. | pHPA: A proactive autoscaling framework for microservice chain | |
Zhang et al. | EB-BFT: An elastic batched BFT consensus protocol in blockchain | |
CN104468710A (zh) | 一种混合大数据处理***及处理方法 | |
CN103617083A (zh) | 存储调度方法和***、作业调度方法和***及管理节点 | |
Alves et al. | Flood: elastic streaming mapreduce | |
CN112615795A (zh) | 流量控制方法、装置、电子设备、存储介质及产品 | |
Mehta et al. | Performance enhancement of scheduling algorithms in clusters and grids using improved dynamic load balancing techniques | |
CN109981726A (zh) | 一种存储节点的分配方法、服务器及*** | |
EP2622499A2 (en) | Techniques to support large numbers of subscribers to a real-time event | |
CN114610765A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |