定的阈值能够使得:工作量比率与处理并发线程数比率的比率在小于或等于该预定的阈值的情况下,任意两个处理并发线程的工作量的比率处于预定的阈值范围内(步骤S12中)。
[0055]举例来说,一时间段内第一处理组件的工作量和第二处理组件的工作量分别是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流计算框架的方法的流程图。
[0056]在Storm流计算框架中,多个处理组件设置在多个服务器上。在调整处理并发线程的数量配比时,在一处理组件中新增加的处理并发线程理论上可以设置在任一服务器中。为了增加整个集群的资源利用率,可以将新增加的处理并发线程设置在资源使用率较低的服务器中。图7是又一示例性实施方式提供的用于Storm流计算框架的方法的流程图。如图7所示,所述方法还包括以下步骤。
[0057]在步骤S13中,统计多个服务器中的每个服务器的资源使用率。
[0058]在步骤S14中,将所增加的处理并发线程设置在多个服务器中资源使用率最低的服务器中。
[0059]其中,所述服务器的资源可以包括硬件和软件上的资源,例如,程序、数据、存储器、输入输出设备、CPU等。这样,通过调度新增加的处理并发线程在资源使用率最低的服务器中启动,能够使服务器的资源使用率趋于平均,从而增加了集群的有效率用率。
[0060]另外,Storm流计算框架还可以包括输入源组件。在很多情况下,Storm输入源也是以分布式形态存在的,如HDFS、HBase、kafka等,这些系统将数据分散送到不同的服务器上。输入源组件可以设置有多个输入源并发线程。多个输入源并发线程中的每个输入源并发线程分别读取相应的数据并将所读取的数据进行发送(发送至处理组件)。图8是又一示例性实施方式提供的用于Storm流计算框架的方法的流程图。如图8所示,所述方法还包括以下步骤。
[0061]在步骤S15中,分别确定多个输入源并发线程中的每个输入源并发线程所读取的数据所在的服务器。
[0062]在步骤S16中,分别将每个输入源并发线程设置在各自所读取的数据所在的服务器中。
[0063]这样,输入源组件的输入源并发线程启动在所读取的数据所在的服务器中,能够从本地读取数据发送到拓扑中进行计算,避免了通过网络读取不同服务器节点上的数据,提高了 Storm流计算框架处理消息的效率。
[0064]本发明还提供一种用于Storm流计算框架的装置。图9是一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。所述Storm流计算框架包括多个处理组件,所述多个处理组件设置有多个处理并发线程。如图9所示,所述装置可以包括工作量统计模块11和调整模块12。
[0065]工作量统计模块11用于分别统计多个处理组件中的每个处理组件在多个时间段中的每个时间段内的工作量,得到工作量历史规律。
[0066]调整模块12用于根据工作量历史规律来调整每个时间段内多个处理并发线程在多个处理组件之间的数量配比,使得在每个时间段内,多个处理并发线程中的任意两个处理并发线程的工作量的比率处于预定的阈值范围内。
[0067]可选地,工作量可以包括接收的消息数量和/或处理消息所花费的时间。
[0068]图10是另一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。多个处理组件包括第一处理组件和第二处理组件。如图10所示,调整模块12可以包括第一调整单元121。
[0069]第一调整单元121用于根据每个时间段内第一平均工作量与第二平均工作量的比率来调整对应的时间段内多个处理并发线程在第一处理组件与第二处理组件之间的数量配比,使得在每个时间段内,多个处理并发线程中的任意两个处理并发线程的工作量的比率处于预定的阈值范围内。其中,第一平均工作量为第一处理组件中的处理并发线程的平均工作量,第二平均工作量为第二处理组件中的处理并发线程的平均工作量。
[0070]图11是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。如图11所示,第一调整单元121可以包括第一调整子单元1211。
[0071]第一调整子单元1211用于在多个时间段中的一个时间段内第一平均工作量与第二平均工作量的比率大于预定的比率阈值的情况下,在第一处理组件中增加预定数量的处理并发线程,并在第二处理组件中减少所述预定数量的处理并发线程。
[0072]图12是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。如图12所示,多个处理组件包括第一处理组件和第二处理组件,调整模块12可以包括第二调整单元122。
[0073]第二调整单元122用于根据每个时间段内第一处理组件与第二处理组件的工作量的比率来调整对应的时间段内多个处理并发线程在第一处理组件与第二处理组件之间的数量配比,使得在每个时间段内,多个处理并发线程中的任意两个处理并发线程的工作量的比率处于预定的阈值范围内。
[0074]图13是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。如图13所示,第二调整单元122可以包括第二调整子单元1221。
[0075]第二调整子单元1221用于在多个时间段中的一个时间段内第一处理组件与第二处理组件的工作量的比率大于预定的比率阈值的情况下,在第一处理组件中增加预定数量的处理并发线程,并在第二处理组件中减少预定数量的处理并发线程。
[0076]图14是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。如图14所示,多个处理组件设置在多个服务器上,所述装置还可以包括使用率统计模块13和第一设置模块14。
[0077]使用率统计模块13用于统计多个服务器中的每个服务器的资源使用率。
[0078]第一设置模块14用于将所增加的处理并发线程设置在多个服务器中资源使用率最低的服务器中。
[0079]Storm流计算框架还包括输入源组件,输入源组件设置有多个输入源并发线程,多个输入源并发线程中的每个输入源并发线程分别读取相应的数据并将所读取的数据进行发送。图15是又一示例性实施方式提供的用于Storm流计算框架的装置的结构框图。如图15所示,所述装置还可以包括服务器确定模块15和第二设置模块16。
[0080]服务器确定模块15用于分别确定多个输入源并发线程中的每个输入源并发线程所读取的数据所在的服务器。
[0081]第二设置模块16用于分别将每个输入源并发线程设置在各自所读取的数据所在的服务器中。
[0082]本发明的用于Storm流计算框架的装置对应于本发明的用于Storm流计算框架的方法,因此相同的内容不再赘述。
[0083]通过上述技术方案,能够基于统计的工作量历史规律,动态地调整多个处理组件之间的处理并发线程的数量配比,以使处理组件的处理并发线程以更优的拓扑进行分布,从而能够充分地利用集群的计算资源,提高了执行效率。
[0084]以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
[0085]另外需要说明的是,在上述【具