一种流处理方法、装置及系统的制作方法

文档序号:9579264阅读:176来源:国知局
一种流处理方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种流处理方法、装置及系统。
【背景技术】
[0002]流处理技术广泛应用在各种领域的实时处理系统中,例如股票证券交易中心、网络监视、web应用、通信数据管理,这类系统的共同特点是,数据实时性强、数据量极大,具有相当高的突发性、连续发生并不断变化。流处理技术需要实时监测连续的数据流,在数据不断变化的过程中实时地进行数据分析,捕捉到可能对用户有用的信息,对紧急情况快速响应,实时处理。
[0003]目前,流数据处理主要采用分布式的计算方式。分布式流处理系统中包含多个计算节点,可以由该多个计算节点完成流数据的处理过程。用户提交流处理任务之后,该分布式流系统将该流处理任务中的流处理组件分配给该多个计算节点,其中,流处理组件包含数据的计算逻辑,使得该多台计算节点能够按照分配得到的流处理组件的计算逻辑对流数据进行处理。
[0004]然而利用上述的分布式流处理系统处理流数据时经常会出现分布在计算节点的流处理组件所需要的计算资源超过该计算节点能够提供的计算资源的情况,容易造成系统不稳定及数据处理的故障,降低系统性能。

【发明内容】

[0005]本发明实施例提供了一种流处理方法、装置及系统,用于对流处理任务中包含的流处理组件进行分配,能够有效的降低因计算节点分配的流处理组件所需要的计算资源超过该计算节点能提供的计算资源所导致出现系统不稳定及数据处理故障的概率,从而改善系统性能。
[0006]本发明第一方面提供了一种流处理方法,所述方法包括:
[0007]接收第一流处理任务,所述第一流处理任务中包含一个或多个流处理组件、所述流处理组件的数据输入及输出关系、流数据源的标识;
[0008]计算所述第一流处理任务包含的所述一个或多个流处理组件中的每一个流处理组件所需要的计算资源;
[0009]若所述第一流处理任务中包含所需要的计算资源不满足预先设置的约束条件的第一流处理组件,则复制与所述第一流处理组件具有相同计算逻辑的第二流处理组件,所述第二流处理组件的个数为一个或多个,并将所述第二流处理组件添加到所述第一流处理任务中,得到第二流处理任务;在所述第二流处理任务中,所述第二流处理组件与所述第一流处理组件具有相同的数据输入及输出关系,且,若在所述第一流处理任务中存在向所述第一流处理组件发送数据的第三流处理组件,则所述第三流处理组件根据第一数据分配策略将所述第三流处理组件发送给所述第一流处理组件的数据发送给所述第一流处理组件和所述第二流处理组件,若在所述第一流处理任务中存在向所述第一流处理组件发送数据的所述流数据源标识对应的流数据源,则所述流数据源根据第二数据分配策略将所述流数据源发送给所述第一流处理组件的数据发送给所述第一流处理组件和所述第二流处理组件,且所述第一流处理任务中的所述第一流处理组件所需要的计算资源根据资源分配策略划分给所述第二流处理任务中的所述第一流处理组件和所述第二流处理组件;
[0010]将所述第二流处理任务中的流处理组件分配给流处理系统中的满足所述流处理组件所需要的计算资源的计算节点。
[0011]在第一方面第一种可能的实现方式中,所述第一流处理任务中还包括流处理组件的算子估计计算量及流传输估计计算量;
[0012]所述计算所述第一流处理任务中的每一个流处理组件所需要的计算资源包括:
[0013]根据所述第一流处理任务中的每一个流处理组件的算子估计计算量及流传输估计计算量,计算所述每一个流处理组件所需要的计算资源。
[0014]结合第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述根据所述第一流处理任务中的每一个流处理组件的算子估计计算量及流传输估计计算量,计算所述每一个流处理组件所需要的计算资源,包括:
[0015]根据所述每一个流处理组件的算子估计计算量及所述流处理组件的源代码的估计计算量,按照预先设置的算子计算量预测函数计算所述每一个流处理组件的算子计算量;
[0016]根据所述每一个流处理组件的流传输估计计算量,按照预先设置的流传输计算量预测函数计算所述每一个流处理组件的流传输计算量;
[0017]将所述每一个流处理组件的算子计算量与所述每一个流处理组件的流传输计算量的和作为所述每一个流处理组件所需要的计算资源。
[0018]结合第一方面或者第一方面第一种可能的实现方式或者第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,所述将所述第二流处理任务中的流处理组件分配给所述流处理系统中的满足所述流处理组件所需要的计算资源的计算节点包括:
[0019]按照所述第二流处理任务中的流处理组件所需要的计算资源从大到小的顺序将所述流处理组件排序;
[0020]将所述流处理组件按照所述排序分配给所述流处理系统中的满足所述流处理组件所需要的计算资源的计算节点,其中所述计算节点为所述流处理组件在各个计算节点上的计算资源比例最小的计算节点,所述计算资源比例为所述流处理组件所需要的计算资源与所述计算节点已使用的计算资源的和占所述计算节点总的计算资源的比例。
[0021]结合第一方面或者第一方面第一种可能的实现方式或者第一方面第二种可能的实现方式,在第一方面第四种可能的实现方式中,所述将所述第二流处理任务中的流处理组件分配给所述流处理系统中的满足所述流处理组件所需要的计算资源的计算节点包括:
[0022]根据预先设置的分类模型确定所述第二流处理任务的类型;
[0023]查找预先设置的任务类型与分配方式的对应关系表,确定与所述第二流处理任务的类型对应的分配方式;
[0024]按照所述分配方式,为所述第二流处理任务中的流处理组件分配满足所述流处理组件所需要的计算资源的计算节点。
[0025]结合第一方面或者第一方面第一种可能的实现方式或者第一方面第二种可能的实现方式或者第一方面第三种可能的实现方式或者第一方面第四种可能的实现方式,在第一方面第五种可能的实现方式中,所述约束条件为所述流处理组件所需要的计算资源小于或等于预先设置的数值,或者,所述流处理组件所需要的计算资源小于各个计算节点能提供的最大的空闲计算资源,或者,所述流处理组件所需要的计算资源小于各个计算节点的空闲计算资源的平均值。
[0026]结合第一方面或者第一方面第一种可能的实现方式或者第一方面第二种可能的实现方式或者第一方面第三种可能的实现方式或者第一方面第四种可能的实现方式,在第一方面第六种可能的实现方式中,所述第一数据分配策略为平均分配策略,所述第二数据分配策略为平均分配策略,所述资源分配策略为平均分配策略。
[0027]本发明第二方面提供了一种流处理装置,包括:
[0028]接收单元,用于接收第一流处理任务,所述第一流处理任务中包含一个或多个流处理组件、所述流处理组件的数据输入及输出关系、流数据源的标识;
[0029]计算单元,用于在所述接收单元接收所述第一流处理任务之后,计算所述第一流处理任务中包含的所述一个或多个流处理组件中的每一个流处理组件所需要的计算资源;
[0030]复制更新单元,用于在所述计算单元得到所述每一个流处理组件所需要的计算资源之后,若所述第一流处理任务中包含所需要的计算资源不满足预先设置的约束条件的第一流处理组件,则复制与所述第一流处理组件具有相同计算逻辑的第二流处理组件,所述第二流处理组件的个数为一个或多个,并将所述第二流处理组件添加到所述第一流处理任务中,得到第二流处理任务;在所述第二流处理任务中,所述第二流处理组件与所述第一流处理组件具有相同的数据输入及输出关系,且,若在所述第一流处理任务中存在向所述第一流处理组件发送数据的第三流处理组件,则所述第三流处理组件根据第一数据分配策略将所述第三流处理组件发送给所述第一流处理组件的数据发送给所述第一流处理组件和所述第二流处理组件,若在所述第一流处理任务中存在向所述第一流处理组件发送数据的所述流数据源标识对应的流数据源,则所述流数据源根据第二数据分配策略将所述流数据源发送给所述第一流处理组件的数据发送给所述第一流处理组件和所述第二流处理组件,且所述第一流处理任务中的所述第一流处理组件所需要的计算资源根据资源分配策略划分给所述第二流处理任务中的所述第一流处理组件和所述第二流处理组件;
[0031]分配单元,用于在所述复制更新单元得到所述第二流处理任务之后,将所述第二流处理任务中的流处理组件分配给所述流处理系统中的满足所述流处理组件所需要的计算资源的计算节点。
[0032]在第二方面第一种可能的实现方式中,所述第一流处理任务中还包括流处理组件的算子估计计算量及流处理组件的流传输估计计算量;
[0033]则所述计算单元具体用于根据所述第一流处理任务中的每一个流处理组件对应的所述流处理组件的算子估计计算量及所述流处理组件的流传输估计计算量,计算所述每一个流处理组件所需要的计算资源。
[0034]结合第二方面第二种可能的实现方式,所述计算单元包括:
[0035]第一计算单元,用于在所述接收单元接收所述第一流处理任务之后,根据所述每一个流处理组件的算子估计计算量及所述流处理组件的源代码的估计计算量,按照预先设置的算子计算量预测函数计算所述每一个流处理组件的算子计算量;
[0036]第二计算单元,用于在所述第一计算单元计算所述每一个流处理组件的算子计算量之后,根据所述每一个流处理组件的流传输估计计算量,按照预先设置的流传输计算量预测函数计算所述每一个流处理组件的流传输计算量;
[0037]第三计算单元,用于在所述第二计算单元计算所述每一个流处理组件的流传输计算量之后,将所述每一个流处理组件的算子计算量与所述每一个流处理组件的流传输计算量的和作为所述每一个流处理组件所需要的计算资源。
[0038]结合第二方面或者第二方面第一种可能的实现方式或者第一方面第二种可能的实现方式,在第二方面第三种可能的实现方式中,所述分配单元包括:
[0039]排序单元,用于在所述复制更新单元得到所述第二流处理任务之后,按照所述第二流处理任务中的流处理组件所需要的计算资源从大到小的顺序将所述流处理组件排序;
[0040]组件分配单元,用于在所述排序单元进行排序后,将所述流处理组件按照所述排序分配给所述流处理系统中满足所述流处理组件所需要的计算资源的计算节点,所述计算节点为所述流处理组件在各个计算节点上的计算资源比例最小的计算节点,所述计算资源比例为所述流处理组件所需要的计算资源与所述计算资源节点已使用的计算资源的和占所述计算节点总的计算资源的比例。
[0041]结合第二方面或者第二方面第一种可能的实现方式或者第一方面第二种可能的实现方式,在第二方面第四种可能的实现方式中,所述分配单元包括:
[0042]确定单元,用于在所述复制更新单元得到所述第二流处理任务之后,根据预先设置的分类模型确定所述第二流处理任务的类型;
[0043]查找单元,用于在所述确定单元确定所述第二流处理任务的类型之后,查找预先设置的任务类型与分配方式的对应关系表,确定与所述第二流处理任务的类型对应的分配方式;
[0044]节点分配单元,用于在所述查找单元确定所述对应的分配方式之后,按照所述对应的分配方式,为所述第二流处理任务中的流处理组件分配满足所述流处理组件所需要的计算资源的计算节点。
[0045]结合第二方面或者第二方面第一种可能的实现方式或者第一方面第二种可能的实现方式或者第二方面第三种可能的实现方式或者第二方面第四种可能的实现方式,在第二方面第五种可能的实现方式中,所述约束条件为流处理组件所需要的计算资源小于或等于预先设置的数值,或者,流处理组件所需要的计算资源小于所有计算节点中剩余计算资源最大的计算节点所能提供的计算资源,或者流处理组件所需要的计算资源小于计算节点的剩余计算资源的平均值。
[0046]结合第二方面或者第二方面第一种可能的实现方式或者第一方面第二种可能的实现方式或者第二方面第三种可能的实现方式或者第二方面第四种可能的实现方式,在第二方面第六种可能的实现方式中,所述第一数据分配策略为平均分配策略,所述第二数据分配策略为平均分配策略,且所述资源分配策略为平均分配策略。
[0047]本发明第三方面提供了一种流处理系统,包括:流处理装置和多个计算节点,其中:
[0048]所述流处理装置用于:接收第一流处理任务,所述第一流处理任务中包含一个或多个流处理组件、所述流处理组件的数据输入及输出关系、流数据源的标识;计算所述第一流处理任务包含的所述一个或多个流处理组件中的每一个流处理组件所需要的计算资源;若所述第一流处理任务中包含所需要的计算资源不满足预先设置的约束条件的第一流处理组件,则复制与所述第一流处理组件具有相同计算逻辑的第二流处理组件,所述第二流处理组件的个数为一个或多个,并将所述第二流处理组件添加到所述第一流处理任务中,得到第二流处理任务;在所述第二流处理任务中,所述第二流处理组件与所
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1