CN104572182B - 一种流应用的配置方法、节点及流计算系统 - Google Patents
一种流应用的配置方法、节点及流计算系统 Download PDFInfo
- Publication number
- CN104572182B CN104572182B CN201410809904.9A CN201410809904A CN104572182B CN 104572182 B CN104572182 B CN 104572182B CN 201410809904 A CN201410809904 A CN 201410809904A CN 104572182 B CN104572182 B CN 104572182B
- Authority
- CN
- China
- Prior art keywords
- operator
- new increasing
- waiting
- downstream
- upstream
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Programmable Controllers (AREA)
Abstract
本发明实施例公开了一种流应用的配置方法、节点及流计算系统,涉及计算机技术领域,可以对流应用进行升级,以使得流应用能够处理新增业务逻辑的待处理业务,并避免对系统资源的过多占用。具体方案为:控制节点获取流应用的增量流图和数据流格式文件;控制节点根据增量流图生成控制指令,并向至少一个工作节点发送控制指令,控制指令用于指示至少一个工作节点创建待新增算子,并创建待新增算子与待新增算子的上、下游算子之间的消息通道;控制节点向至少一个工作节点发送数据流格式文件,以指示至少一个工作节点根据数据流格式文件,为至少一个工作节点上创建的待新增算子和待新增算子的上、下游算子,配置数据格式。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种流应用的配置方法、节点及流计算系统。
背景技术
流计算是一种类似流水线式的数据处理模式,待处理的数据像流水一样连续不断的进入流计算系统,流计算系统进行实时处理并输出结果。在流计算系统中,针对具体业务的流计算是由部署在流计算系统中的流应用完成的。流应用逻辑模型图,通常简称为流图,可以指示多个算子以及多个算子之间的数据流走向,其中,数据流用于表示算子之间的数据传输,算子承载有待处理业务的业务逻辑,用于对流应用的数据进行处理,业务逻辑具体为用于处理待处理业务所使用的规则或算法。如图1所示,用圆圈表示算子,用箭头表示数据流走向。在流图中,第一个接收输入流应用的数据的算子为源算子,输出流应用的处理结果的算子为输出算子,除源算子和输出算子之外的算子为中间算子(包括算子1、算子2、算子3、算子4和算子5)。
随着用户需求的变化,待处理业务的业务逻辑可能会发生变化,随着业务逻辑的变化,算子的输入数据格式和输出数据格式也可能会发生变化,这就需要对流计算系统中的流应用进行扩展,以使得流计算系统中的流应用能够处理业务逻辑发生变化后的待处理业务。
现有技术中,可以通过在流计算系统中创建一个新的流应用,该新的流应用包含能够承载新增的业务逻辑的算子,以实现对流计算系统中的流应用的扩展,以使得新的流应用能够处理新增业务逻辑的待处理业务。如图2所示,可以在如图1所示的原有的流应用所在的流计算系统中,创建一个新的流应用,其中,原有的流应用包含能够承载待处理业务原有的业务逻辑的算子,新的流应用包含能够承载新增的业务逻辑的算子。具体的,该新的流应用包含源算子、算子6、算子7和输出算子,其中,算子6和算子7能够承载新增的业务逻辑。
但是,存在的问题是:在流计算系统中创建包含新的源算子和新的输出算子的新的流应用会占用额外的系统资源;并且,由于每一个流应用都需要有相应的进程来管理,因此,控制节点需要创建新的进程来管理新的流应用,这会进一步导致系统资源的占用。
发明内容
本发明的实施例提供一种流应用的配置方法、节点及流计算系统,可以对流应用进行升级,以使得流应用能够处理新增业务逻辑的待处理业务,并避免对系统资源的过多占用。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明实施例的第一方面,提供一种流应用的配置方法,应用于流计算系统中的控制节点,所述流计算系统包括所述控制节点和至少一个工作节点,多个算子分布于所述至少一个工作节点中的一个或多个工作节点上,用于对所述流计算系统上部署的流应用的数据进行处理,所述方法包括:
所述控制节点获取流应用的增量流图和数据流格式文件,所述增量流图用于指示待新增算子以及所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,所述数据流格式文件用于指示所述待新增算子的数据格式和所述待新增算子的上、下游算子的数据格式,所述数据格式包括输入数据格式和输出数据格式;
所述控制节点根据所述增量流图生成控制指令,并向所述至少一个工作节点发送所述控制指令,所述控制指令用于指示所述至少一个工作节点创建所述待新增算子,并根据所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;
所述控制节点向所述至少一个工作节点发送所述数据流格式文件,以指示所述至少一个工作节点根据所述数据流格式文件,为所述至少一个工作节点上创建的所述待新增算子和所述待新增算子的上、下游算子,配置所述数据格式。
结合第一方面,在第一种可能的实现方式中,所述控制指令包含第一控制指令和第二控制指令;
所述控制节点根据所述增量流图生成控制指令,并向所述至少一个工作节点发送所述控制指令,包括:
所述控制节点根据所述增量流图所指示的所述待新增算子生成所述第一控制指令;
所述控制节点向所述至少一个工作节点发送所述第一控制指令,所述第一控制指令用于指示所述至少一个工作节点创建所述待新增算子;
所述控制节点根据所述增量流图所指示的所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,生成所述第二控制指令;
所述控制节点向所述至少一个工作节点发送所述第二控制指令,所述第二控制指令用于指示所述至少一个工作节点根据所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道。
结合第一方面,在第二种可能的实现方式中,在所述控制节点向所述至少一个工作节点发送所述数据流格式文件之前,所述方法还包括:
所述控制节点解析所述数据流格式文件,获得所述待新增算子的格式文件和所述待新增算子的上、下游算子的格式文件;其中,所述待新增算子的格式文件用于指示所述待新增算子的数据格式,所述待新增算子的上、下游算子的格式文件用于指示所述待新增算子的上、下游算子的数据格式;
所述控制节点向所述至少一个工作节点发送所述数据流格式文件,包括:
所述控制节点将所述待新增算子的格式文件下发至所述待新增算子所在的工作节点,以使得所述待新增算子所在的工作节点解析所述待新增算子的格式文件,并使得所述待新增算子所在的工作节点根据解析结果为所述待新增算子配置数据格式,进而使得所述待新增算子创建编解码模型,以对输入所述待新增算子的数据进行逻辑运算;
所述控制节点将所述待新增算子的上、下游算子的格式文件下发至所述待新增算子的上、下游算子所在的工作节点,以使得所述待新增算子的上、下游算子所在的工作节点解析所述待新增算子的上、下游算子的格式文件,并使得所述待新增算子的上、下游算子所在的工作节点根据解析结果为所述待新增算子的上、下游算子配置数据格式,进而使得所述待新增算子的上、下游算子创建编解码模型,以对输入所述待新增算子的上、下游算子的数据进行逻辑运算。
结合第一方面的第二种可能的实现方式中,在第三种可能的实现方式中,所述数据流格式文件还用于指示所述待新增算子的输出数据的派发策略和所述待新增算子的上、下游算子的输出数据的派发策略;
其中,所述待新增算子的输出数据的派发策略用于指示所述待新增算子的输出数据格式与所述待新增算子的输出端口之间的对应关系;所述待新增算子包含至少一个输出端口,所述待新增算子的每个输出端口对应于所述待新增算子与所述待新增算子的一个下游算子之间的消息通道;
所述待新增算子的上游算子的输出数据的派发策略用于指示所述待新增算子的上游算子的输出数据格式与所述待新增算子的上游算子的输出端口之间的对应关系;所述待新增算子的上游算子包含至少一个输出端口,所述待新增算子的上游算子的每个输出端口对应于所述待新增算子的上游算子与所述待新增算子的上游算子的一个下游算子之间的消息通道;
所述待新增算子的下游算子的输出数据的派发策略用于指示所述待新增算子的下游算子的输出数据格式与所述待新增算子的下游算子的输出端口之间的对应关系;所述待新增算子的下游算子包含至少一个输出端口,所述待新增算子的下游算子的每个输出端口对应于所述待新增算子的下游算子与所述待新增算子的下游算子的一个下游算子之间的消息通道。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述数据流格式文件还用于指示所述待新增算子的输出数据的派发策略,具体为:所述待新增算子的格式文件还用于指示所述待新增算子的输出数据的派发策略;
所述数据流格式文件还用于指示所述待新增算子的上、下游算子的输出数据的派发策略,具体为:所述待新增算子的上、下游算子的格式文件还用于指示所述待新增算子的上、下游算子的输出数据的派发策略。
本发明实施例的第二方面,提供一种流应用的配置方法,应用于流计算系统中的工作节点,所述流计算系统包括控制节点和至少一个所述工作节点,至少一个算子分布在所述工作节点上,用于对所述流计算系统上部署的流应用的数据进行处理,所述方法包括:
所述工作节点接收所述控制节点发送的控制指令;所述控制指令为所述控制节点根据增量流图生成的,所述增量流图用于指示待新增算子以及所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向;
所述工作节点根据所述控制指令的指示,创建所述待新增算子并创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;
所述工作节点接收所述控制节点发送的数据流格式文件,并根据所述数据流格式文件,为第一算子配置数据格式;所述第一算子为分布在所述工作节点上的算子,所述第一算子包括:算子集合中的至少一个算子,所述算子集合由所述待新增算子和所述待新增算子的上、下游算子构成;所述数据格式包括输入数据格式和输出数据格式;所述数据流格式文件用于指示所述待新增算子的数据格式和所述待新增算子的上、下游算子的数据格式。
结合第二方面,在第一种可能的实现方式中,所述工作节点接收所述控制节点发送的数据流格式文件,并根据所述数据流格式文件,为第一算子配置数据格式,包括:
所述工作节点接收所述控制节点发送的所述第一算子的格式文件,所述第一算子的格式文件为所述控制节点解析所述数据流格式文件得到的,所述第一算子的格式文件用于指示所述第一算子的数据格式;
所述工作节点解析所述第一算子的格式文件,并根据解析结果为所述第一算子配置数据格式,进而使得所述第一算子创建编解码模型,以对输入所述第一算子的数据进行逻辑运算。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述数据流格式文件还用于指示所述待新增算子的输出数据的派发策略和所述待新增算子的上、下游算子的输出数据的派发策略;
其中,所述待新增算子的输出数据的派发策略用于指示所述待新增算子的输出数据格式与所述待新增算子的输出端口之间的对应关系;所述待新增算子包含至少一个输出端口,所述待新增算子的每个输出端口对应于所述待新增算子与所述待新增算子的一个下游算子之间的消息通道;
所述待新增算子的上游算子的输出数据的派发策略用于指示所述待新增算子的上游算子的输出数据格式与所述待新增算子的上游算子的输出端口之间的对应关系;所述待新增算子的上游算子包含至少一个输出端口,所述待新增算子的上游算子的每个输出端口对应于所述待新增算子的上游算子与所述待新增算子的上游算子的一个下游算子之间的消息通道;
所述待新增算子的下游算子的输出数据的派发策略用于指示所述待新增算子的下游算子的输出数据格式与所述待新增算子的下游算子的输出端口之间的对应关系;所述待新增算子的下游算子包含至少一个输出端口,所述待新增算子的下游算子的每个输出端口对应于所述待新增算子的下游算子与所述待新增算子的下游算子的一个下游算子之间的消息通道。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第一算子的格式文件还用于指示所述第一算子的输出数据的派发策略;
所述工作节点解析所述第一算子的格式文件,并根据解析结果为所述第一算子配置数据格式,包括:
所述工作节点解析所述第一算子的格式文件,并根据解析结果为所述第一算子配置数据格式和所述第一算子的输出数据的派发策略。
本发明实施例的第三方面,提供一种控制节点,应用于流计算系统,所述流计算系统包括所述控制节点和至少一个工作节点,多个算子分布于所述至少一个工作节点中的一个或多个工作节点上,用于对所述流计算系统上部署的流应用的数据进行处理,所述控制节点包括:
获取单元,用于获取流应用的增量流图和数据流格式文件,所述增量流图用于指示待新增算子以及所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,所述数据流格式文件用于指示所述待新增算子的数据格式和所述待新增算子的上、下游算子的数据格式,所述数据格式包括输入数据格式和输出数据格式;
指令生成单元,用于根据所述增量流图生成控制指令;
发送单元,用于并向所述至少一个工作节点发送所述控制指令,所述控制指令用于指示所述至少一个工作节点创建所述待新增算子,并根据所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;
所述发送单元,还用于向所述至少一个工作节点发送所述数据流格式文件,以指示所述至少一个工作节点根据所述数据流格式文件,为所述至少一个工作节点上创建的所述待新增算子和所述待新增算子的上、下游算子,配置所述数据格式。
结合第三方面,在第一种可能的实现方式中,所述控制指令包含第一控制指令和第二控制指令;
所述指令生成单元,具体用于:根据所述增量流图所指示的所述待新增算子生成所述第一控制指令;根据所述增量流图所指示的所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,生成所述第二控制指令;
所述发送单元,具体用于:向所述至少一个工作节点发送所述第一控制指令,所述第一控制指令用于指示所述至少一个工作节点创建所述待新增算子;向所述至少一个工作节点发送所述第二控制指令,所述第二控制指令用于指示所述至少一个工作节点根据所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道。
结合第三方面,在第二种可能的实现方式中,所述控制节点还包括:
解析单元,用于在所述发送单元向所述至少一个工作节点发送所述数据流格式文件之前,解析所述数据流格式文件,获得所述待新增算子的格式文件和所述待新增算子的上、下游算子的格式文件;其中,所述待新增算子的格式文件用于指示所述待新增算子的数据格式,所述待新增算子的上、下游算子的格式文件用于指示所述待新增算子的上、下游算子的数据格式;
所述发送单元,具体用于:将所述待新增算子的格式文件下发至所述待新增算子所在的工作节点,以使得所述待新增算子所在的工作节点解析所述待新增算子的格式文件,并使得所述待新增算子所在的工作节点根据解析结果为所述待新增算子配置数据格式,进而使得所述待新增算子创建编解码模型,以对输入所述待新增算子的数据进行逻辑运算;将所述待新增算子的上、下游算子的格式文件下发至所述待新增算子的上、下游算子所在的工作节点,以使得所述待新增算子的上、下游算子所在的工作节点解析所述待新增算子的上、下游算子的格式文件,并使得所述待新增算子的上、下游算子所在的工作节点根据解析结果为所述待新增算子的上、下游算子配置数据格式,进而使得所述待新增算子的上、下游算子创建编解码模型,以对输入所述待新增算子的上、下游算子的数据进行逻辑运算。
结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述数据流格式文件还用于指示所述待新增算子的输出数据的派发策略和所述待新增算子的上、下游算子的输出数据的派发策略;
其中,所述待新增算子的输出数据的派发策略用于指示所述待新增算子的输出数据格式与所述待新增算子的输出端口之间的对应关系;所述待新增算子包含至少一个输出端口,所述待新增算子的每个输出端口对应于所述待新增算子与所述待新增算子的一个下游算子之间的消息通道;
所述待新增算子的上游算子的输出数据的派发策略用于指示所述待新增算子的上游算子的输出数据格式与所述待新增算子的上游算子的输出端口之间的对应关系;所述待新增算子的上游算子包含至少一个输出端口,所述待新增算子的上游算子的每个输出端口对应于所述待新增算子的上游算子与所述待新增算子的上游算子的一个下游算子之间的消息通道;
所述待新增算子的下游算子的输出数据的派发策略用于指示所述待新增算子的下游算子的输出数据格式与所述待新增算子的下游算子的输出端口之间的对应关系;所述待新增算子的下游算子包含至少一个输出端口,所述待新增算子的下游算子的每个输出端口对应于所述待新增算子的下游算子与所述待新增算子的下游算子的一个下游算子之间的消息通道。
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述数据流格式文件还用于指示所述待新增算子的输出数据的派发策略,具体为:所述待新增算子的格式文件还用于指示所述待新增算子的输出数据的派发策略;
所述数据流格式文件还用于指示所述待新增算子的上、下游算子的输出数据的派发策略,具体为:所述待新增算子的上、下游算子的格式文件还用于指示所述待新增算子的上、下游算子的输出数据的派发策略。
本发明实施例的第四方面,提供一种工作节点,应用于流计算系统,所述流计算系统包括控制节点和至少一个所述工作节点,至少一个算子分布在所述工作节点上,用于对所述流计算系统上部署的流应用的数据进行处理,所述工作节点包括:
接收单元,用于接收所述控制节点发送的控制指令;所述控制指令为所述控制节点根据增量流图生成的,所述增量流图用于指示待新增算子以及所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向;
创建单元,用于根据所述控制指令的指示,创建所述待新增算子并创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;
所述接收单元,还用于接收所述控制节点发送的数据流格式文件;
配置单元,用于根据所述接收单元接收到的所述数据流格式文件,为第一算子配置数据格式;所述第一算子为分布在所述工作节点上的算子,所述第一算子包括:算子集合中的至少一个算子,所述算子集合由所述待新增算子和所述待新增算子的上、下游算子构成;所述数据格式包括输入数据格式和输出数据格式;所述数据流格式文件用于指示所述待新增算子的数据格式和所述待新增算子的上、下游算子的数据格式。
结合第四方面,在第一种可能的实现方式中,
所述接收单元,具体用于接收所述控制节点发送的所述第一算子的格式文件,所述第一算子的格式文件为所述控制节点解析所述数据流格式文件得到的,所述第一算子的格式文件用于指示所述第一算子的数据格式;
所述工作节点,还包括:
解析单元,用于解析所述第一算子的格式文件;
所述配置单元,具体用于根据所述解析单元得到的解析结果为所述第一算子配置数据格式,进而使得所述第一算子创建编解码模型,以对输入所述第一算子的数据进行逻辑运算。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述数据流格式文件还用于指示所述待新增算子的输出数据的派发策略和所述待新增算子的上、下游算子的输出数据的派发策略;
其中,所述待新增算子的输出数据的派发策略用于指示所述待新增算子的输出数据格式与所述待新增算子的输出端口之间的对应关系;所述待新增算子包含至少一个输出端口,所述待新增算子的每个输出端口对应于所述待新增算子与所述待新增算子的一个下游算子之间的消息通道;
所述待新增算子的上游算子的输出数据的派发策略用于指示所述待新增算子的上游算子的输出数据格式与所述待新增算子的上游算子的输出端口之间的对应关系;所述待新增算子的上游算子包含至少一个输出端口,所述待新增算子的上游算子的每个输出端口对应于所述待新增算子的上游算子与所述待新增算子的上游算子的一个下游算子之间的消息通道;
所述待新增算子的下游算子的输出数据的派发策略用于指示所述待新增算子的下游算子的输出数据格式与所述待新增算子的下游算子的输出端口之间的对应关系;所述待新增算子的下游算子包含至少一个输出端口,所述待新增算子的下游算子的每个输出端口对应于所述待新增算子的下游算子与所述待新增算子的下游算子的一个下游算子之间的消息通道。
结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第一算子的格式文件还用于指示所述第一算子的输出数据的派发策略;
所述配置单元,具体还用于根据所述解析单元得到的解析结果为所述第一算子配置数据格式和所述第一算子的输出数据的派发策略。
本发明实施例的第五方面,提供一种流计算系统,所述流计算系统包括控制节点和至少一个工作节点,多个算子分布于所述至少一个工作节点中的一个或多个工作节点上,用于对所述流计算系统上部署的流应用的数据进行处理,
所述控制节点,用于获取流应用的增量流图和数据流格式文件,所述增量流图用于指示待新增算子以及所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,所述数据流格式文件用于指示所述待新增算子的数据格式和所述待新增算子的上、下游算子的数据格式,所述数据格式包括输入数据格式和输出数据格式;根据所述增量流图生成控制指令,并向所述至少一个工作节点发送所述控制指令,所述控制指令用于指示所述至少一个工作节点创建所述待新增算子,并根据所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;向所述至少一个工作节点发送所述数据流格式文件,以指示所述至少一个工作节点根据所述数据流格式文件,为所述至少一个工作节点上创建的所述待新增算子和所述待新增算子的上、下游算子,配置所述数据格式;
所述至少一个工作节点中的任意一个工作节点,用于接收所述控制节点发送的所述控制指令;根据所述控制指令的指示,创建所述待新增算子并创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;接收所述控制节点发送的所述数据流格式文件,并根据所述数据流格式文件,为第一算子配置数据格式;所述第一算子为分布在所述工作节点上的算子,所述第一算子包括:算子集合中的至少一个算子,所述算子集合由所述待新增算子和所述待新增算子的上、下游算子构成。
本发明实施例提供的流应用的配置方法、节点及流计算系统,控制节点根据获取到的增量流图生成控制指令,并通过控制指令指示至少一个工作节点创建增量流图所指示的待新增算子,并指示至少一个工作节点创建待新增算子与待新增算子的上、下游算子之间的消息通道(即待新增的消息通道);控制节点还可以向至少一个工作节点发送数据流格式文件,指示至少一个工作节点为已创建的待新增算子及待新增算子的上、下游算子配置数据格式。这样,就可以动态的创建待新增算子、待新增的消息通道以及动态配置数据格式,使得创建的待新增算子与增量流图相匹配,并使得为算子配置的数据格式与数据格式文件相匹配,从而可以实现对流应用进行升级,使得流应用能够处理新增业务逻辑的待处理业务;同时,由于本发明实施例中流应用的配置方法是在流计算系统中已有流应用的基础上创建新增算子、待新增的消息通道以及动态配置数据格式,以实现流应用的升级,而并未创建包含新的源算子和新的输出算子的新的流应用,因此可以避免新的流应用占用额外的系统资源,当然也不需要创建新的进程来管理新的流应用,从而避免新的进程对系统资源的过多占用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个流应用的流图的示意图;
图2为现有技术中新增业务逻辑后的流应用的流图的示意图;
图3为另一个流应用的流图的示意图;
图4为本发明实施例中的一种流计算系统的组成示意图;
图5为本发明实施例中的一种流应用的配置方法的流程图;
图6为本发明实施例中的增量流图和流计算系统中已有的流应用的流图的示意图;
图7为本发明实施例中的工作节点上部署的算子的示意图;
图8为本发明实施例中的另一种流应用的配置方法的流程图;
图9为本发明实施例中的另一种流应用的配置方法的流程图;
图10为本发明实施例中的一种控制节点的组成示意图;
图11为本发明实施例中的另一种控制节点的组成示意图;
图12为本发明实施例中的一种工作节点的组成示意图;
图13为本发明实施例中的另一种工作节点的组成示意图;
图14为本发明实施例中的另一种控制节点的组成示意图;
图15为本发明实施例中的另一种工作节点的组成示意图;
图16为本发明实施例中的另一种流计算系统的组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着大数据时代的到来,对海量数据进行实时处理、分析和决策的市场需求(例如,电信领域的精准广告推送、金融领域的交易动态实时趋势分析以及工业领域的实时监控等)不断扩大。在此背景下,流计算被提出来。流计算是一种类似流水线式的数据处理模式,待处理的数据像流水一样连续不断的进入流计算系统,流计算系统进行实时处理并输出结果。
本发明实施例提供的技术方案可典型地应用于流计算系统中,图4描述了流计算系统的基本结构,该流计算系统包括:控制节点和多个工作节点,在集群部署时,控制节点和工作节点都可以有一个或多个,控制节点可以是与工作节点分离的物理节点;在单机部署时,控制节点和工作节点可以是部署在同一个物理节点上的逻辑单元;其中,物理节点具体可以为计算机或服务器。控制节点用于管理流应用以及控制工作节点在工作节点上创建算子。通常情况下,一台物理节点即为一个工作节点,在某些情形下,一台物理节点可以对应于多个工作节点,一台物理节点对应的工作节点的数量取决于该物理节点的硬件物理资源。可以将一个工作节点理解为是一份硬件物理资源。对应于同一物理节点的工作节点间采用进程通信的方式进行通信,对应于不同物理节点的工作节点间采用网络通信的方式进行通信。
如图3所示,为一个流应用的流图,该流图指示该流应用包含8个算子(源算子、算子1、算子2、算子3、算子4、算子5、算子6和输出算子),并指示了这8个算子之间的数据流走向。算子之间数据流的走向也体现了各个算子的输入数据流和输出数据流的依赖关系。需要说明的是,本发明实施例中数据流也简称为流(stream)。在图3中,源算子的输出数据流流向算子1和算子2,算子1处理的是源算子的输出数据流,算子2处理的是源算子的输出数据流,即算子1和算子2的输出数据流依赖于源算子输入算子1和算子2的输入流(即源算子的输出流),通常也称算子1和算子2为源算子的下游算子,而源算子为算子1和算子2的上游算子;可以理解的是,上游算子和下游算子是根据算子之间的数据流走向来确定的。
图4为流计算系统的示意图,该流计算系统包括控制节点、工作节点1、工作节点2和工作节点3。控制节点根据如图3所示的流图,控制工作节点(即工作节点1、工作节点2和工作节点3)在工作节点上配置这8个算子,以对输入该流应用的数据进行处理。具体的,控制节点根据流图,控制工作节点1在工作节点1上配置源算子、算子1和算子2;控制工作节点2在工作节点2上配置算子3、算子4和算子5;控制工作节点3在工作节点3上配置算子6和输出算子。可以看出,经过配置之后,工作节点1、工作节点2和工作节点3上的配置的算子之间的数据流走向与如图3所示的流图是匹配的。
需要说明的是,本发明实施例中的流图可以为有向无环图(英文:DirectedAcyclic Graph,简称:DAG)、树状图或者含有环的图。
还需要说明的是,流计算系统只是本发明技术方案的一个典型应用场景,并不对本发明的应用场景构成限制,其它涉及分布式系统或云计算系统应用部署与升级的应用场景,本发明实施例的技术方案均适用。
本发明实施例提供一种流应用的配置方法,可典型地应用于以上描述的流计算系统,该流计算系统包括控制节点和至少一个工作节点,多个算子分布于所述至少一个工作节点中的一个或多个工作节点上,用于对流计算系统上部署的流应用的数据进行处理。本发明实施例从控制节点的角度对本发明实施例提供的流应用的配置方法进行说明,如图5所示,该方法包括:
S101、控制节点获取流应用的增量流图和数据流格式文件。
其中,增量流图用于指示待新增算子以及待新增算子与待新增算子的上、下游算子之间的数据流走向,待新增算子用于承载待处理业务的新增的业务逻辑,增量流图可以是开发人员针对待处理业务预先建立的,也可以是用户针对待处理业务预先建立的;数据流格式文件用于指示待新增算子的数据格式和待新增算子的上、下游算子的数据格式,数据格式包括输入数据格式和输出数据格式。
示例性的,如图6所示,流计算系统中已有的流应用的流图中包含源算子、算子1、算子2和输出算子,控制节点获取的增量流图指示待新增的算子为算子3和算子4,增量流图还指示了:算子3与其上游算子(源算子)之间的数据流走向、算子3与其下游算子(算子4)之间的数据流走向、算子4与其上游算子(算子3)之间的数据流走向以及算子4与其下游算子(输出算子)之间的数据流走向。
对应于如图6所示的增量流图,数据流格式文件具体用于指示算子3的输入数据格式和输出数据格式、算子4的输入数据格式和输出数据格式、源算子的输入数据格式和输出数据格式以及输出算子的输入数据格式和输出数据格式。
S102、控制节点根据增量流图生成控制指令,并向至少一个工作节点发送控制指令。
其中,控制指令用于指示至少一个工作节点创建待新增算子,并根据待新增算子与待新增算子的上、下游算子之间的数据流走向,创建待新增算子与待新增算子的上、下游算子之间的消息通道。
示例性的,如图7所示,工作节点1上已部署有源算子、算子1和算子2,工作节点2上已部署有输出算子。控制节点需要向工作节点1和工作节点2发送控制指令,控制指令为根据如图6所示的增量流图生成的指令,以指示工作节点2创建算子3和算子4(即待新增算子),并指示工作节点1创建源算子与算子3之间的消息通道,指示工作节点2创建算子3与算子4之间的消息通道、算子4与输出算子之间的消息通道。
S103、控制节点向至少一个工作节点发送数据流格式文件,以指示至少一个工作节点根据数据流格式文件,为至少一个工作节点上创建的待新增算子和待新增算子的上、下游算子,配置数据格式。
示例性的,对于如图7所示的算子的部署情况,控制节点需要向工作节点1发送数据流格式文件,以指示工作节点1根据数据流格式文件,为源算子配置输入数据格式和输出数据格式;控制节点还需要向工作节点2发送数据流格式文件,以指示工作节点2根据数据流格式文件,为算子3配置输入数据格式和输出数据格式、为算子4配置输入数据格式和输出数据格式以及为输出算子配置输入数据格式和输出数据格式。
本发明实施例提供的流应用的配置方法,控制节点根据获取到的增量流图生成控制指令,并通过控制指令指示至少一个工作节点创建增量流图所指示的待新增算子,并指示至少一个工作节点创建待新增算子与待新增算子的上、下游算子之间的消息通道(即待新增的消息通道);控制节点还可以向至少一个工作节点发送数据流格式文件,指示至少一个工作节点为已创建的待新增算子及待新增算子的上、下游算子配置数据格式。这样,就可以动态的创建待新增算子、待新增的消息通道以及动态配置数据格式,使得创建的待新增算子与增量流图相匹配,并使得为算子配置的数据格式与数据格式文件相匹配,从而可以实现对流应用进行升级,使得流应用能够处理新增业务逻辑的待处理业务;同时,由于本发明实施例中流应用的配置方法是在流计算系统中已有流应用的基础上创建新增算子、待新增的消息通道以及动态配置数据格式,以实现流应用的升级,而并未创建包含新的源算子和新的输出算子的新的流应用,因此可以避免新的流应用占用额外的系统资源,当然也不需要创建新的进程来管理新的流应用,从而避免新的进程对系统资源的过多占用。
本发明实施例还提供一种流应用的配置方法,可典型地应用于以上描述的流计算系统,该流计算系统包括控制节点和至少一个工作节点,至少一个算子分布在所述工作节点上,用于对流计算系统上部署的流应用的数据进行处理。本发明实施例从工作节点的角度对本发明实施例提供的流应用的配置方法进行说明,如图8所示,该方法包括:
S201、工作节点接收控制节点发送的控制指令。
其中,控制指令为控制节点根据增量流图生成的,增量流图用于指示待新增算子以及待新增算子与待新增算子的上、下游算子之间的数据流走向,待新增算子用于承载待处理业务的新增的业务逻辑。
S202、工作节点根据控制指令的指示,创建待新增算子并创建待新增算子与待新增算子的上、下游算子之间的消息通道。
S203、工作节点接收控制节点发送的数据流格式文件,并根据数据流格式文件,为第一算子配置数据格式。
其中,第一算子为分布在工作节点上的算子,第一算子包括:算子集合中的至少一个算子,算子集合由待新增算子和待新增算子的上、下游算子构成;数据格式包括输入数据格式和输出数据格式;数据流格式文件用于指示待新增算子的数据格式和待新增算子的上、下游算子的数据格式。
本发明实施例提供的流应用的配置方法,工作节点根据控制节点发送的控制指令,创建待新增算子并创建待新增算子与待新增算子的上、下游算子之间的消息通道(即待新增的消息通道),并根据控制节点发送的数据流格式文件,为分布在工作节点上的第一算子配置输入数据格式和输出数据格式,这样,就可以动态的创建待新增算子、待新增的消息通道以及动态配置数据格式,使得创建的待新增算子与增量流图相匹配,并使得为算子配置的数据格式与数据格式文件相匹配,从而可以实现对流应用进行升级,使得流应用能够处理新增业务逻辑的待处理业务;同时,由于本发明实施例中流应用的配置方法是在流计算系统中已有流应用的基础上创建新增算子、待新增的消息通道以及动态配置数据格式,以实现流应用的升级,而并未创建包含新的源算子和新的输出算子的新的流应用,因此可以避免新的流应用占用额外的系统资源,当然也不需要创建新的进程来管理新的流应用,从而避免新的进程对系统资源的过多占用。
本发明实施例还提供一种流应用的配置方法,可典型地应用于以上描述的流计算系统,该流计算系统包括控制节点和至少一个工作节点,至少一个算子分布在所述工作节点上,用于对流计算系统上部署的流应用的数据进行处理。本发明实施例从控制节点和工作节点进行交互的角度对本发明实施例提供的流应用的配置方法进行说明,如图9所示,该方法包括:
S301、控制节点获取流应用的增量流图和数据流格式文件。
其中,增量流图用于指示待新增算子以及待新增算子与待新增算子的上、下游算子之间的数据流走向,数据流格式文件用于指示待新增算子的数据格式和待新增算子的上、下游算子的数据格式,数据格式包括输入数据格式和输出数据格式。
示例性的,本发明实施例以图6所示的增量流图为例进行说明,增量流图指示待新增的算子为算子3和算子4,增量流图还指示了:算子3与其上游算子(源算子)之间的数据流走向、算子3与其下游算子(算子4)之间的数据流走向、算子4与其上游算子(算子3)之间的数据流走向以及算子4与其下游算子(输出算子)之间的数据流走向。数据流格式文件具体指示了算子3的输入数据格式和输出数据格式、算子4的输入数据格式和输出数据格式、源算子的输入数据格式和输出数据格式以及输出算子的输入数据格式和输出数据格式。
S302、控制节点根据增量流图生成控制指令。
优选的,控制指令包含第一控制指令和第二控制指令。控制节点根据增量流图生成控制指令具体包括:
控制节点根据增量流图所指示的待新增算子生成第一控制指令;控制节点根据增量流图所指示的待新增算子与待新增算子的上、下游算子之间的数据流走向,生成第二控制指令。
S303、控制节点向至少一个工作节点发送控制指令。
其中,控制节点向至少一个工作节点发送控制指令具体包括:控制节点向至少一个工作节点发送第一控制指令和第二控制指令。可选的,控制节点可以向至少一个工作节点同时发送第一控制指令和第二控制指令,也可以向至少一个工作节点先发送第一控制指令,再发送第二控制指令。
第一控制指令用于指示至少一个工作节点创建待新增算子;第二控制指令用于指示至少一个工作节点根据待新增算子与待新增算子的上、下游算子之间的数据流走向,创建待新增算子与待新增算子的上、下游算子之间的消息通道。
需要说明的是,控制节点可能会向多个工作节点发送控制指令,为了清楚说明起见,图9中仅列出了两个工作节点,即工作节点1和工作节点2。
S304、工作节点2根据控制指令的指示,在工作节点2上创建算子3和算子4,并创建算子3与算子4之间的消息通道、算子4与输出算子之间的消息通道。
S305、工作节点1根据控制指令的指示,创建源算子与算子3之间的消息通道。
执行完S305后,各个算子的部署情况如图7所示。
S306、控制节点解析数据流格式文件,获得算子3的格式文件、算子4的格式文件、源算子的格式文件和输出算子的格式文件。
其中,算子3的格式文件用于指示算子3的输入数据格式和输出数据格式、算子4的格式文件用于指示算子4的输入数据格式和输出数据格式、源算子的格式文件用于指示源算子的输入数据格式和输出数据格式、输出算子的格式文件用于指示输出算子的输入数据格式和输出数据格式。
示例性的,控制节点获得的源算子的格式文件的内容如下:
<schema name=”xdr In1”>
<!--定义一种数据格式xdr I n1,这种数据格式包括两个属性:xdr1_id和xdr 1_len-->
<attribute name=”xdr1_id”type=”uint32”/>
<attribute name=”xdr1_len”type=”uint16”/>
</schema>
<schema name=”message”type=”binary”>
<!—输入数据包括两部分:数据类型(type)和具体数据内容(body),body根据不同的数据类型可能有不同的格式,当前body只有一种数据格式xdrIn1-->
<attr i bute name=”type”type=”msg_type”/>
<attribute name=”body”type=”subschema”choice=”type:xdr1->xdrIn1”/>
</schema>
数据流格式文件是一个用户可编辑的文件,用户可以通过数据流格式文件修改算子的输入数据格式和输出数据格式。当算子的数据格式发生变化时,控制节点可以重新获取新的数据流格式文件,并重新解析数据流格式文件,以获得算子的格式文件。
示例性的,当源算子的输入数据格式发生变化时,控制节点获得的源算子的格式文件的内容如下:
<schema name=”xdr In1”>
<!--定义一种数据格式xdr In1,这种数据格式包括两个属性:xdr 1_id和xdr1_len-->
<attr i bute name=”xdr1_id”type=”uint32”/>
<attribute name=”xdr1_len”type=”uint16”/>
</schema>
<schema name=”xdr In2”>
<!--定义另一种数据格式xdr In2,这种数据格式包括两个属性:xdr2_id和xdr2_len-->
<attribute name=”xdr2_id”type=”uint16”/>
<attribute name=”xdr2_len”type=”uint16”/>
</schema>
<schema name=”message”type=”binary”>
<!—输入数据有两种数据格式:xdrIn1和xdrIn2,源算子对输入数据进行解码时,通过type确定当前的数据格式,并采用相应解码方法对输入数据进行解码,以得到具体的数值-->
<attribute name=”type”type=”msg_type”/>
<attribute name=”body”type=”subschema”choice=”type:xdr1->xdr In1;xdr2->xdr In2”/>
</schema>
S307、控制节点将源算子的格式文件下发至工作节点1。
S308、控制节点将算子3的格式文件、算子4的格式文件以及输出算子的格式文件发送至工作节点2。
S309、工作节点1解析源算子的格式文件,并根据解析结果为源算子配置数据格式,进而使得源算子创建编解码模型,以对输入源算子的数据进行逻辑运算。
S310、工作节点2解析算子3的格式文件、算子4的格式文件以及输出算子的格式文件,并根据解析结果为算子3、算子4以及输出算子配置数据格式,进而使得算子3创建编解码模型,以对输入算子3的数据进行逻辑运算,并使得算子4创建编解码模型,以对输入算子4的数据进行逻辑运算,并使得输出算子创建编解码模型,以对输入输出算子的数据进行逻辑运算。
优选的,在另一个实施例中,数据流格式文件还用于指示待新增算子的输出数据的派发策略和待新增算子的上、下游算子的输出数据的派发策略。
其中,待新增算子的输出数据的派发策略用于指示待新增算子的输出数据格式与待新增算子的输出端口之间的对应关系;待新增算子包含至少一个输出端口,待新增算子的每个输出端口对应于待新增算子与待新增算子的一个下游算子之间的消息通道。
待新增算子的上游算子的输出数据的派发策略用于指示待新增算子的上游算子的输出数据格式与待新增算子的上游算子的输出端口之间的对应关系;待新增算子的上游算子包含至少一个输出端口,待新增算子的上游算子的每个输出端口对应于待新增算子的上游算子与待新增算子的上游算子的一个下游算子之间的消息通道。
待新增算子的下游算子的输出数据的派发策略用于指示待新增算子的下游算子的输出数据格式与待新增算子的下游算子的输出端口之间的对应关系;待新增算子的下游算子包含至少一个输出端口,待新增算子的下游算子的每个输出端口对应于待新增算子的下游算子与待新增算子的下游算子的一个下游算子之间的消息通道。
示例性的,与图6所示的增量流图对应的数据流格式文件,还用于指示源算子的输出数据派发策略、算子3的输出数据的派发策略和算子4的输出数据派发。
源算子的输出数据派发策略用于指示源算子的输出数据格式与源算子的输出端口之间的对应关系,本实施例中的源算子包含两个输出端口,源算子的两个输出端口分别对应于源算子与算子1之间的消息通道、源算子与算子3之间的消息通道。
算子3的输出数据的派发策略用于指示算子3的输出数据格式与算子3的输出端口之间的对应关系,本实施例中的算子3包含一个输出端口,算子3的输出端口对应于算子3与算子4之间的消息通道。
算子4的输出数据的派发策略用于指示算子4的输出数据格式与算子4的输出端口之间的对应关系,本实施例中的算子4包含一个输出端口,算子4的输出端口对应于算子4与输出算子之间的消息通道。
进一步的,数据流格式文件还用于指示源算子的输出数据派发策略、算子3的输出数据的派发策略和算子4的输出数据派发,具体为:S306中控制节点解析获得的源算子的格式文件还用于指示源算子的输出数据派发策略,S306中控制节点解析获得的算子3的格式文件还用于指示算子3的输出数据派发策略,S306中控制节点解析获得的算子4的格式文件还用于指示算子4的输出数据派发策略。
示例性的,控制节点获得的某一算子的格式文件的内容可以如下:
<in stream=”Src In_stream”schema=”message”port=0/>
<!—输入数据为从端口0接收的数据-->
<out choice=”Src In_stream.type;Scr In_stream.event;”>
<stream name=”ScrXDR1_stream”schema=”xdrOut1”choiceval=”xdr1;x1;”port=”1”/>
<stream name=”ScrXDR1_stream”schema=”xdrOut2”choiceval=”xdr2;x2;”port=”2”/>
<!—当输入数据的type字段值为xdr1,且event字段值为x1时,将数据从输出端口1发送出去;当输入数据的type字段值为xdr2,且event字段值为x2时,将数据从输出端口2发送出去-->
</out>
如上述格式文件指示的算子的输出数据的派发策略,具体可以用于指示该算子的输出数据格式为xdr In1的数据与输出端口1对应,该算子的输出数据格式为xdr In21的数据与输出端口2对应。
需要说明的是,当数据流格式文件还用于指示待新增算子的输出数据的派发策略和待新增算子的上、下游算子的输出数据的派发策略时,在S309中,工作节点1还可以根据解析结果为源算子配置源算子的输出数据的派发策略;在S310中,工作节点2还可以根据解析结果为算子3配置算子3的输出数据派发策略,并为算子4配置算子4的输出数据派发策略。通过为算子配置输出数据的派发策略,可以将算子输出的数据按照数据格式进行分类,并从相应的输出端口发出,可以避免从输出端口发送无用数据导致的资源浪费。
执行完上述步骤后,表明当前的流应用已配置完成,控制节点可以更新路由表(更新后的路由表见表1),以记录算子间的消息通道与算子的输入端口以及算子的输出端口的对应关系。路由表可以以表1的形式记录,当然也可以以其他形式记录。
表1
消息通道 | 端口 |
源算子->算子1 | 源算子的输出端口1->算子1的输入端口1 |
算子1->算子2 | 算子1的输出端口2->算子2的输入端口1 |
算子2->输出算子 | 算子2的输出端口2->输出算子的输入端口1 |
源算子->算子3 | 源算子的输出端口2->算子3的输入端口1 |
算子3->算子4 | 算子3的输出端口2->算子4的输入端口1 |
算子4->输出算子 | 算子4的输出端口2->输出算子的输入端口1 |
本发明实施例提供的流应用的配置方法,控制节点根据获取到的增量流图生成控制指令,并通过控制指令指示至少一个工作节点创建增量流图所指示的待新增算子,并指示至少一个工作节点创建待新增算子与待新增算子的上、下游算子之间的消息通道(即待新增的消息通道);控制节点还可以向至少一个工作节点发送数据流格式文件,指示至少一个工作节点为已创建的待新增算子及待新增算子的上、下游算子配置数据格式。这样,就可以动态的创建待新增算子、待新增的消息通道以及动态配置数据格式,使得创建的待新增算子与增量流图相匹配,并使得为算子配置的数据格式与数据格式文件相匹配,从而可以实现对流应用进行升级,使得流应用能够处理新增业务逻辑的待处理业务;同时,由于本发明实施例中流应用的配置方法是在流计算系统中已有流应用的基础上创建新增算子、待新增的消息通道以及动态配置数据格式,以实现流应用的升级,而并未创建包含新的源算子和新的输出算子的新的流应用,因此可以避免新的流应用占用额外的系统资源,当然也不需要创建新的进程来管理新的流应用,从而避免新的进程对系统资源的过多占用。
基于上述方法实施例,本发明实施例还提供一种控制节点,应用于流计算系统,流计算系统包括控制节点和至少一个工作节点,多个算子分布于至少一个工作节点中的一个或多个工作节点上,用于对流计算系统上部署的流应用的数据进行处理,如图10所示,控制节点包括:获取单元41、指令生成单元42和发送单元43。
获取单元41,用于获取流应用的增量流图和数据流格式文件,增量流图用于指示待新增算子以及待新增算子与待新增算子的上、下游算子之间的数据流走向,数据流格式文件用于指示待新增算子的数据格式和待新增算子的上、下游算子的数据格式,数据格式包括输入数据格式和输出数据格式。
指令生成单元42,用于根据增量流图生成控制指令。
发送单元43,用于并向至少一个工作节点发送控制指令,控制指令用于指示至少一个工作节点创建待新增算子,并根据待新增算子与待新增算子的上、下游算子之间的数据流走向,创建待新增算子与待新增算子的上、下游算子之间的消息通道。
发送单元43,还用于向至少一个工作节点发送数据流格式文件,以指示至少一个工作节点根据数据流格式文件,为至少一个工作节点上创建的待新增算子和待新增算子的上、下游算子,配置数据格式。
进一步的,控制指令包含第一控制指令和第二控制指令。
指令生成单元42,具体用于:根据增量流图所指示的待新增算子生成第一控制指令;根据增量流图所指示的待新增算子与待新增算子的上、下游算子之间的数据流走向,生成第二控制指令。
发送单元43,具体用于:向至少一个工作节点发送第一控制指令,第一控制指令用于指示至少一个工作节点创建待新增算子;向至少一个工作节点发送第二控制指令,第二控制指令用于指示至少一个工作节点根据待新增算子与待新增算子的上、下游算子之间的数据流走向,创建待新增算子与待新增算子的上、下游算子之间的消息通道。
进一步的,如图11所示,控制节点还包括:解析单元44。
解析单元44,用于在发送单元43向至少一个工作节点发送数据流格式文件之前,解析数据流格式文件,获得待新增算子的格式文件和待新增算子的上、下游算子的格式文件;其中,待新增算子的格式文件用于指示待新增算子的数据格式,待新增算子的上、下游算子的格式文件用于指示待新增算子的上、下游算子的数据格式。
发送单元43,具体用于:将待新增算子的格式文件下发至待新增算子所在的工作节点,以使得待新增算子所在的工作节点解析待新增算子的格式文件,并使得待新增算子所在的工作节点根据解析结果为待新增算子配置数据格式,进而使得待新增算子创建编解码模型,以对输入待新增算子的数据进行逻辑运算;将待新增算子的上、下游算子的格式文件下发至待新增算子的上、下游算子所在的工作节点,以使得待新增算子的上、下游算子所在的工作节点解析待新增算子的上、下游算子的格式文件,并使得待新增算子的上、下游算子所在的工作节点根据解析结果为待新增算子的上、下游算子配置数据格式,进而使得待新增算子的上、下游算子创建编解码模型,以对输入待新增算子的上、下游算子的数据进行逻辑运算。
进一步的,数据流格式文件还用于指示待新增算子的输出数据的派发策略和待新增算子的上、下游算子的输出数据的派发策略。
其中,待新增算子的输出数据的派发策略用于指示待新增算子的输出数据格式与待新增算子的输出端口之间的对应关系;待新增算子包含至少一个输出端口,待新增算子的每个输出端口对应于待新增算子与待新增算子的一个下游算子之间的消息通道。
待新增算子的上游算子的输出数据的派发策略用于指示待新增算子的上游算子的输出数据格式与待新增算子的上游算子的输出端口之间的对应关系;待新增算子的上游算子包含至少一个输出端口,待新增算子的上游算子的每个输出端口对应于待新增算子的上游算子与待新增算子的上游算子的一个下游算子之间的消息通道。
待新增算子的下游算子的输出数据的派发策略用于指示待新增算子的下游算子的输出数据格式与待新增算子的下游算子的输出端口之间的对应关系;待新增算子的下游算子包含至少一个输出端口,待新增算子的下游算子的每个输出端口对应于待新增算子的下游算子与待新增算子的下游算子的一个下游算子之间的消息通道。
进一步的,数据流格式文件还用于指示待新增算子的输出数据的派发策略,具体为:待新增算子的格式文件还用于指示待新增算子的输出数据的派发策略。
数据流格式文件还用于指示待新增算子的上、下游算子的输出数据的派发策略,具体为:待新增算子的上、下游算子的格式文件还用于指示待新增算子的上、下游算子的输出数据的派发策略。
需要说明的是,本发明实施例提供的控制节点中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的控制节点,控制节点根据获取到的增量流图生成控制指令,并通过控制指令指示至少一个工作节点创建增量流图所指示的待新增算子,并指示至少一个工作节点创建待新增算子与待新增算子的上、下游算子之间的消息通道(即待新增的消息通道);控制节点还可以向至少一个工作节点发送数据流格式文件,指示至少一个工作节点为已创建的待新增算子及待新增算子的上、下游算子配置数据格式。这样,就可以动态的创建待新增算子、待新增的消息通道以及动态配置数据格式,使得创建的待新增算子与增量流图相匹配,并使得为算子配置的数据格式与数据格式文件相匹配,从而可以实现对流应用进行升级,使得流应用能够处理新增业务逻辑的待处理业务;同时,由于本发明实施例中流应用的配置方法是在流计算系统中已有流应用的基础上创建新增算子、待新增的消息通道以及动态配置数据格式,以实现流应用的升级,而并未创建包含新的源算子和新的输出算子的新的流应用,因此可以避免新的流应用占用额外的系统资源,当然也不需要创建新的进程来管理新的流应用,从而避免新的进程对系统资源的过多占用。
基于上述方法实施例,本发明实施例还提供一种工作节点,应用于流计算系统,所述流计算系统包括控制节点和至少一个所述工作节点,至少一个算子分布在所述工作节点上,用于对所述流计算系统上部署的流应用的数据进行处理,如图12所示,所述工作节点包括:接收单元51、创建单元52和配置单元53。
接收单元51,用于接收控制节点发送的控制指令;控制指令为控制节点根据增量流图生成的,增量流图用于指示待新增算子以及待新增算子与待新增算子的上、下游算子之间的数据流走向。
创建单元52,用于根据控制指令的指示,创建待新增算子并创建待新增算子与待新增算子的上、下游算子之间的消息通道。
接收单元51,还用于接收控制节点发送的数据流格式文件。
配置单元53,用于根据接收单元51接收到的数据流格式文件,为第一算子配置数据格式;第一算子为分布在工作节点上的算子,第一算子包括:算子集合中的至少一个算子,算子集合由待新增算子和待新增算子的上、下游算子构成;数据格式包括输入数据格式和输出数据格式;数据流格式文件用于指示待新增算子的数据格式和待新增算子的上、下游算子的数据格式。
进一步的,接收单元51,具体用于接收控制节点发送的第一算子的格式文件,第一算子的格式文件为控制节点解析数据流格式文件得到的,第一算子的格式文件用于指示第一算子的数据格式。
进一步的,如图13所示,工作节点还包括:解析单元54。
解析单元54,用于解析第一算子的格式文件。
配置单元53,具体用于根据解析单元54得到的解析结果为第一算子配置数据格式,进而使得第一算子创建编解码模型,以对输入第一算子的数据进行逻辑运算。
进一步的,数据流格式文件还用于指示待新增算子的输出数据的派发策略和待新增算子的上、下游算子的输出数据的派发策略。
其中,待新增算子的输出数据的派发策略用于指示待新增算子的输出数据格式与待新增算子的输出端口之间的对应关系;待新增算子包含至少一个输出端口,待新增算子的每个输出端口对应于待新增算子与待新增算子的一个下游算子之间的消息通道。
待新增算子的上游算子的输出数据的派发策略用于指示待新增算子的上游算子的输出数据格式与待新增算子的上游算子的输出端口之间的对应关系;待新增算子的上游算子包含至少一个输出端口,待新增算子的上游算子的每个输出端口对应于待新增算子的上游算子与待新增算子的上游算子的一个下游算子之间的消息通道。
待新增算子的下游算子的输出数据的派发策略用于指示待新增算子的下游算子的输出数据格式与待新增算子的下游算子的输出端口之间的对应关系;待新增算子的下游算子包含至少一个输出端口,待新增算子的下游算子的每个输出端口对应于待新增算子的下游算子与待新增算子的下游算子的一个下游算子之间的消息通道。
进一步的,第一算子的格式文件还用于指示第一算子的输出数据的派发策略。
配置单元53,具体还用于根据解析单元54得到的解析结果为第一算子配置数据格式和第一算子的输出数据的派发策略。
需要说明的是,本发明实施例提供的工作节点中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的工作节点,工作节点根据控制节点发送的控制指令,创建待新增算子并创建待新增算子与待新增算子的上、下游算子之间的消息通道(即待新增的消息通道),并根据控制节点发送的数据流格式文件,为分布在工作节点上的第一算子配置输入数据格式和输出数据格式,这样,就可以动态的创建待新增算子、待新增的消息通道以及动态配置数据格式,使得创建的待新增算子与增量流图相匹配,并使得为算子配置的数据格式与数据格式文件相匹配,从而可以实现对流应用进行升级,使得流应用能够处理新增业务逻辑的待处理业务;同时,由于本发明实施例中流应用的配置方法是在流计算系统中已有流应用的基础上创建新增算子、待新增的消息通道以及动态配置数据格式,以实现流应用的升级,而并未创建包含新的源算子和新的输出算子的新的流应用,因此可以避免新的流应用占用额外的系统资源,当然也不需要创建新的进程来管理新的流应用,从而避免新的进程对系统资源的过多占用。
本发明实施例还提供一种控制节点,该控制节点可以为一台计算机或服务器,该控制节点应用于流计算系统,流计算系统还包括至少一个工作节点,多个算子分布于至少一个工作节点中的一个或多个工作节点上,用于对流计算系统上部署的流应用的数据进行处理。如图14所示,本发明实施例提供的控制节点包括:存储器61、处理器62、发送器63和总线系统64。
其中,存储器61、处理器62和发送器63之间是通过总线系统64耦合在一起的,其中总线系统64除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图14中将各种总线都标为总线系统64。
存储器61,用于存储一组代码。存储器61可以包括只读存储器和随机存取存储器,存储器61的一部分还可以包括非易失性随机存取存储器(NVRAM)。存储器61还用于存储操作指令和数据。
处理器62,用于执行存储器61存储的代码,并具体用于执行以下操作:获取流应用的增量流图和数据流格式文件,增量流图用于指示待新增算子以及待新增算子与待新增算子的上、下游算子之间的数据流走向,数据流格式文件用于指示待新增算子的数据格式和待新增算子的上、下游算子的数据格式,数据格式包括输入数据格式和输出数据格式;根据增量流图生成控制指令。
发送器63,用于向至少一个工作节点发送控制指令,控制指令用于指示至少一个工作节点创建待新增算子,并根据待新增算子与待新增算子的上、下游算子之间的数据流走向,创建待新增算子与待新增算子的上、下游算子之间的消息通道;向至少一个工作节点发送数据流格式文件,以指示至少一个工作节点根据数据流格式文件,为至少一个工作节点上创建的待新增算子和待新增算子的上、下游算子,配置数据格式。
处理器62可以为中央处理器(Central Processing Unit,CPU),也可以为CPU和数字信号处理器(Digital Signal Processor,DSP)的组合。在本发明实施例中,CPU可以是单运算核心,也可以包括多运算核心。
需要说明的是,本发明实施例提供的控制节点中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的控制节点,控制节点根据获取到的增量流图生成控制指令,并通过控制指令指示至少一个工作节点创建增量流图所指示的待新增算子,并指示至少一个工作节点创建待新增算子与待新增算子的上、下游算子之间的消息通道(即待新增的消息通道);控制节点还可以向至少一个工作节点发送数据流格式文件,指示至少一个工作节点为已创建的待新增算子及待新增算子的上、下游算子配置数据格式。这样,就可以动态的创建待新增算子、待新增的消息通道以及动态配置数据格式,使得创建的待新增算子与增量流图相匹配,并使得为算子配置的数据格式与数据格式文件相匹配,从而可以实现对流应用进行升级,使得流应用能够处理新增业务逻辑的待处理业务;同时,由于本发明实施例中流应用的配置方法是在流计算系统中已有流应用的基础上创建新增算子、待新增的消息通道以及动态配置数据格式,以实现流应用的升级,而并未创建包含新的源算子和新的输出算子的新的流应用,因此可以避免新的流应用占用额外的系统资源,当然也不需要创建新的进程来管理新的流应用,从而避免新的进程对系统资源的过多占用。
本发明实施例还提供一种工作节点,应用于流计算系统,流计算系统包括控制节点和至少一个工作节点,至少一个算子分布在工作节点上,用于对流计算系统上部署的流应用的数据进行处理。如图15所示,本发明实施例提供的工作节点包括:接收器71、存储器72、处理器73和总线系统74。
其中,接收器71、存储器72和处理器73之间是通过总线系统74耦合在一起的,其中总线系统74除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图15中将各种总线都标为总线系统74。
接收器71,用于接收控制节点发送的控制指令;控制指令为控制节点根据增量流图生成的,增量流图用于指示待新增算子以及待新增算子与待新增算子的上、下游算子之间的数据流走向。
接收器71,还用于接收控制节点发送的数据流格式文件。
存储器72,用于存储一组代码。存储器72可以包括只读存储器和随机存取存储器,存储器72的一部分还可以包括非易失性随机存取存储器(NVRAM)。
处理器73,用于执行存储器72存储的代码,并具体用于执行以下操作:根据接收器71接收到的控制指令的指示,创建待新增算子并创建待新增算子与待新增算子的上、下游算子之间的消息通道;根据接收器71接收到的数据流格式文件,为第一算子配置数据格式;第一算子为分布在工作节点上的算子,第一算子包括:算子集合中的至少一个算子,算子集合由待新增算子和待新增算子的上、下游算子构成;数据格式包括输入数据格式和输出数据格式;数据流格式文件用于指示待新增算子的数据格式和待新增算子的上、下游算子的数据格式。
处理器73可以为中央处理器(Central Processing Unit,CPU),也可以为CPU和数字信号处理器(Digital Signal Processor,DSP)的组合。在本发明实施例中,CPU可以是单运算核心,也可以包括多运算核心。
需要说明的是,本发明实施例提供的工作节点中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的工作节点,工作节点根据控制节点发送的控制指令,创建待新增算子并创建待新增算子与待新增算子的上、下游算子之间的消息通道(即待新增的消息通道),并根据控制节点发送的数据流格式文件,为分布在工作节点上的第一算子配置输入数据格式和输出数据格式,这样,就可以动态的创建待新增算子、待新增的消息通道以及动态配置数据格式,使得创建的待新增算子与增量流图相匹配,并使得为算子配置的数据格式与数据格式文件相匹配,从而可以实现对流应用进行升级,使得流应用能够处理新增业务逻辑的待处理业务;同时,由于本发明实施例中流应用的配置方法是在流计算系统中已有流应用的基础上创建新增算子、待新增的消息通道以及动态配置数据格式,以实现流应用的升级,而并未创建包含新的源算子和新的输出算子的新的流应用,因此可以避免新的流应用占用额外的系统资源,当然也不需要创建新的进程来管理新的流应用,从而避免新的进程对系统资源的过多占用。
本发明实施例还提供一种流计算系统,如图16所示,流计算系统包括控制节点81和多个工作节点82,工作节点82上配置有算子,算子用于对流计算系统上部署的流应用的数据进行处理。
控制节点81,用于获取流应用的增量流图和数据流格式文件,增量流图用于指示待新增算子以及待新增算子与待新增算子的上、下游算子之间的数据流走向,数据流格式文件用于指示待新增算子的数据格式和待新增算子的上、下游算子的数据格式,数据格式包括输入数据格式和输出数据格式;根据增量流图生成控制指令,并向至少一个工作节点发送控制指令,控制指令用于指示至少一个工作节点创建待新增算子,并根据待新增算子与待新增算子的上、下游算子之间的数据流走向,创建待新增算子与待新增算子的上、下游算子之间的消息通道;向至少一个工作节点发送数据流格式文件,以指示至少一个工作节点根据数据流格式文件,为至少一个工作节点上创建的待新增算子和待新增算子的上、下游算子,配置数据格式。
工作节点82,用于接收控制节点81发送的控制指令;根据控制指令的指示,创建待新增算子并创建待新增算子与待新增算子的上、下游算子之间的消息通道;接收控制节点发送的数据流格式文件,并根据数据流格式文件,为第一算子配置数据格式;第一算子为分布在工作节点上的算子,第一算子包括:算子集合中的至少一个算子,算子集合由待新增算子和待新增算子的上、下游算子构成。
本发明实施例提供的流计算系统,控制节点根据获取到的增量流图生成控制指令,并通过控制指令指示至少一个工作节点创建增量流图所指示的待新增算子,并指示至少一个工作节点创建待新增算子与待新增算子的上、下游算子之间的消息通道(即待新增的消息通道);控制节点还可以向至少一个工作节点发送数据流格式文件,指示至少一个工作节点为已创建的待新增算子及待新增算子的上、下游算子配置数据格式。这样,就可以动态的创建待新增算子、待新增的消息通道以及动态配置数据格式,使得创建的待新增算子与增量流图相匹配,并使得为算子配置的数据格式与数据格式文件相匹配,从而可以实现对流应用进行升级,使得流应用能够处理新增业务逻辑的待处理业务;同时,由于本发明实施例中流应用的配置方法是在流计算系统中已有流应用的基础上创建新增算子、待新增的消息通道以及动态配置数据格式,以实现流应用的升级,而并未创建包含新的源算子和新的输出算子的新的流应用,因此可以避免新的流应用占用额外的系统资源,当然也不需要创建新的进程来管理新的流应用,从而避免新的进程对系统资源的过多占用。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种流应用的配置方法,应用于流计算系统中的控制节点,所述流计算系统包括所述控制节点和至少一个工作节点,多个算子分布于所述至少一个工作节点中的一个或多个工作节点上,所述控制节点和至少一个工作节点用于对所述流计算系统上部署的流应用的数据进行处理,其特征在于,所述方法包括:
所述控制节点获取流应用的增量流图和数据流格式文件,所述增量流图用于指示待新增算子以及所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,所述数据流格式文件用于指示所述待新增算子的数据格式和所述待新增算子的上、下游算子的数据格式,所述数据格式包括输入数据格式和输出数据格式;
所述控制节点根据所述增量流图生成控制指令,并向所述至少一个工作节点发送所述控制指令,所述控制指令用于指示所述至少一个工作节点创建所述待新增算子,并根据所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;
所述控制节点向所述至少一个工作节点发送所述数据流格式文件,以指示所述至少一个工作节点根据所述数据流格式文件,为所述至少一个工作节点上创建的所述待新增算子和所述待新增算子的上、下游算子,配置所述数据格式。
2.根据权利要求1所述的方法,其特征在于,所述控制指令包含第一控制指令和第二控制指令;
所述控制节点根据所述增量流图生成控制指令,并向所述至少一个工作节点发送所述控制指令,包括:
所述控制节点根据所述增量流图所指示的所述待新增算子生成所述第一控制指令;
所述控制节点向所述至少一个工作节点发送所述第一控制指令,所述第一控制指令用于指示所述至少一个工作节点创建所述待新增算子;
所述控制节点根据所述增量流图所指示的所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,生成所述第二控制指令;
所述控制节点向所述至少一个工作节点发送所述第二控制指令,所述第二控制指令用于指示所述至少一个工作节点根据所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道。
3.根据权利要求1所述的方法,其特征在于,在所述控制节点向所述至少一个工作节点发送所述数据流格式文件之前,所述方法还包括:
所述控制节点解析所述数据流格式文件,获得所述待新增算子的格式文件和所述待新增算子的上、下游算子的格式文件;其中,所述待新增算子的格式文件用于指示所述待新增算子的数据格式,所述待新增算子的上、下游算子的格式文件用于指示所述待新增算子的上、下游算子的数据格式;
所述控制节点向所述至少一个工作节点发送所述数据流格式文件,包括:
所述控制节点将所述待新增算子的格式文件下发至所述待新增算子所在的工作节点,以使得所述待新增算子所在的工作节点解析所述待新增算子的格式文件,并使得所述待新增算子所在的工作节点根据解析结果为所述待新增算子配置数据格式,进而使得所述待新增算子创建编解码模型,以对输入所述待新增算子的数据进行逻辑运算;
所述控制节点将所述待新增算子的上、下游算子的格式文件下发至所述待新增算子的上、下游算子所在的工作节点,以使得所述待新增算子的上、下游算子所在的工作节点解析所述待新增算子的上、下游算子的格式文件,并使得所述待新增算子的上、下游算子所在的工作节点根据解析结果为所述待新增算子的上、下游算子配置数据格式,进而使得所述待新增算子的上、下游算子创建编解码模型,以对输入所述待新增算子的上、下游算子的数据进行逻辑运算。
4.根据权利要求3所述的方法,其特征在于,所述数据流格式文件还用于指示所述待新增算子的输出数据的派发策略和所述待新增算子的上、下游算子的输出数据的派发策略;
其中,所述待新增算子的输出数据的派发策略用于指示所述待新增算子的输出数据格式与所述待新增算子的输出端口之间的对应关系;所述待新增算子包含至少一个输出端口,所述待新增算子的每个输出端口对应于所述待新增算子与所述待新增算子的一个下游算子之间的消息通道;
所述待新增算子的上游算子的输出数据的派发策略用于指示所述待新增算子的上游算子的输出数据格式与所述待新增算子的上游算子的输出端口之间的对应关系;所述待新增算子的上游算子包含至少一个输出端口,所述待新增算子的上游算子的每个输出端口对应于所述待新增算子的上游算子与所述待新增算子的上游算子的一个下游算子之间的消息通道;
所述待新增算子的下游算子的输出数据的派发策略用于指示所述待新增算子的下游算子的输出数据格式与所述待新增算子的下游算子的输出端口之间的对应关系;所述待新增算子的下游算子包含至少一个输出端口,所述待新增算子的下游算子的每个输出端口对应于所述待新增算子的下游算子与所述待新增算子的下游算子的一个下游算子之间的消息通道。
5.根据权利要求4所述的方法,其特征在于,所述数据流格式文件还用于指示所述待新增算子的输出数据的派发策略,具体为:所述待新增算子的格式文件还用于指示所述待新增算子的输出数据的派发策略;
所述数据流格式文件还用于指示所述待新增算子的上、下游算子的输出数据的派发策略,具体为:所述待新增算子的上、下游算子的格式文件还用于指示所述待新增算子的上、下游算子的输出数据的派发策略。
6.一种流应用的配置方法,应用于流计算系统中的工作节点,所述流计算系统包括控制节点和至少一个所述工作节点,至少一个算子分布在所述工作节点上,所述控制节点和至少一个所述工作节点用于对所述流计算系统上部署的流应用的数据进行处理,其特征在于,所述方法包括:
所述工作节点接收所述控制节点发送的控制指令;所述控制指令为所述控制节点根据增量流图生成的,所述增量流图用于指示待新增算子以及所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向;
所述工作节点根据所述控制指令的指示,创建所述待新增算子并创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;
所述工作节点接收所述控制节点发送的数据流格式文件,并根据所述数据流格式文件,为第一算子配置数据格式;所述第一算子为分布在所述工作节点上的算子,所述第一算子包括:算子集合中的至少一个算子,所述算子集合由所述待新增算子和所述待新增算子的上、下游算子构成;所述数据格式包括输入数据格式和输出数据格式;所述数据流格式文件用于指示所述待新增算子的数据格式和所述待新增算子的上、下游算子的数据格式。
7.根据权利要求6所述的方法,其特征在于,所述工作节点接收所述控制节点发送的数据流格式文件,并根据所述数据流格式文件,为第一算子配置数据格式,包括:
所述工作节点接收所述控制节点发送的所述第一算子的格式文件,所述第一算子的格式文件为所述控制节点解析所述数据流格式文件得到的,所述第一算子的格式文件用于指示所述第一算子的数据格式;
所述工作节点解析所述第一算子的格式文件,并根据解析结果为所述第一算子配置数据格式,进而使得所述第一算子创建编解码模型,以对输入所述第一算子的数据进行逻辑运算。
8.根据权利要求7所述的方法,其特征在于,所述数据流格式文件还用于指示所述待新增算子的输出数据的派发策略和所述待新增算子的上、下游算子的输出数据的派发策略;
其中,所述待新增算子的输出数据的派发策略用于指示所述待新增算子的输出数据格式与所述待新增算子的输出端口之间的对应关系;所述待新增算子包含至少一个输出端口,所述待新增算子的每个输出端口对应于所述待新增算子与所述待新增算子的一个下游算子之间的消息通道;
所述待新增算子的上游算子的输出数据的派发策略用于指示所述待新增算子的上游算子的输出数据格式与所述待新增算子的上游算子的输出端口之间的对应关系;所述待新增算子的上游算子包含至少一个输出端口,所述待新增算子的上游算子的每个输出端口对应于所述待新增算子的上游算子与所述待新增算子的上游算子的一个下游算子之间的消息通道;
所述待新增算子的下游算子的输出数据的派发策略用于指示所述待新增算子的下游算子的输出数据格式与所述待新增算子的下游算子的输出端口之间的对应关系;所述待新增算子的下游算子包含至少一个输出端口,所述待新增算子的下游算子的每个输出端口对应于所述待新增算子的下游算子与所述待新增算子的下游算子的一个下游算子之间的消息通道。
9.根据权利要求8所述的方法,其特征在于,所述第一算子的格式文件还用于指示所述第一算子的输出数据的派发策略;
所述工作节点解析所述第一算子的格式文件,并根据解析结果为所述第一算子配置数据格式,包括:
所述工作节点解析所述第一算子的格式文件,并根据解析结果为所述第一算子配置数据格式和所述第一算子的输出数据的派发策略。
10.一种控制节点,应用于流计算系统,所述流计算系统包括所述控制节点和至少一个工作节点,多个算子分布于所述至少一个工作节点中的一个或多个工作节点上,所述控制节点和至少一个工作节点用于对所述流计算系统上部署的流应用的数据进行处理,其特征在于,所述控制节点包括:
获取单元,用于获取流应用的增量流图和数据流格式文件,所述增量流图用于指示待新增算子以及所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,所述数据流格式文件用于指示所述待新增算子的数据格式和所述待新增算子的上、下游算子的数据格式,所述数据格式包括输入数据格式和输出数据格式;
指令生成单元,用于根据所述增量流图生成控制指令;
发送单元,用于并向所述至少一个工作节点发送所述控制指令,所述控制指令用于指示所述至少一个工作节点创建所述待新增算子,并根据所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;
所述发送单元,还用于向所述至少一个工作节点发送所述数据流格式文件,以指示所述至少一个工作节点根据所述数据流格式文件,为所述至少一个工作节点上创建的所述待新增算子和所述待新增算子的上、下游算子,配置所述数据格式。
11.根据权利要求10所述的控制节点,其特征在于,所述控制指令包含第一控制指令和第二控制指令;
所述指令生成单元,具体用于:根据所述增量流图所指示的所述待新增算子生成所述第一控制指令;根据所述增量流图所指示的所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,生成所述第二控制指令;
所述发送单元,具体用于:向所述至少一个工作节点发送所述第一控制指令,所述第一控制指令用于指示所述至少一个工作节点创建所述待新增算子;向所述至少一个工作节点发送所述第二控制指令,所述第二控制指令用于指示所述至少一个工作节点根据所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道。
12.根据权利要求10所述的控制节点,其特征在于,所述控制节点还包括:
解析单元,用于在所述发送单元向所述至少一个工作节点发送所述数据流格式文件之前,解析所述数据流格式文件,获得所述待新增算子的格式文件和所述待新增算子的上、下游算子的格式文件;其中,所述待新增算子的格式文件用于指示所述待新增算子的数据格式,所述待新增算子的上、下游算子的格式文件用于指示所述待新增算子的上、下游算子的数据格式;
所述发送单元,具体用于:将所述待新增算子的格式文件下发至所述待新增算子所在的工作节点,以使得所述待新增算子所在的工作节点解析所述待新增算子的格式文件,并使得所述待新增算子所在的工作节点根据解析结果为所述待新增算子配置数据格式,进而使得所述待新增算子创建编解码模型,以对输入所述待新增算子的数据进行逻辑运算;将所述待新增算子的上、下游算子的格式文件下发至所述待新增算子的上、下游算子所在的工作节点,以使得所述待新增算子的上、下游算子所在的工作节点解析所述待新增算子的上、下游算子的格式文件,并使得所述待新增算子的上、下游算子所在的工作节点根据解析结果为所述待新增算子的上、下游算子配置数据格式,进而使得所述待新增算子的上、下游算子创建编解码模型,以对输入所述待新增算子的上、下游算子的数据进行逻辑运算。
13.根据权利要求12所述的控制节点,其特征在于,所述数据流格式文件还用于指示所述待新增算子的输出数据的派发策略和所述待新增算子的上、下游算子的输出数据的派发策略;
其中,所述待新增算子的输出数据的派发策略用于指示所述待新增算子的输出数据格式与所述待新增算子的输出端口之间的对应关系;所述待新增算子包含至少一个输出端口,所述待新增算子的每个输出端口对应于所述待新增算子与所述待新增算子的一个下游算子之间的消息通道;
所述待新增算子的上游算子的输出数据的派发策略用于指示所述待新增算子的上游算子的输出数据格式与所述待新增算子的上游算子的输出端口之间的对应关系;所述待新增算子的上游算子包含至少一个输出端口,所述待新增算子的上游算子的每个输出端口对应于所述待新增算子的上游算子与所述待新增算子的上游算子的一个下游算子之间的消息通道;
所述待新增算子的下游算子的输出数据的派发策略用于指示所述待新增算子的下游算子的输出数据格式与所述待新增算子的下游算子的输出端口之间的对应关系;所述待新增算子的下游算子包含至少一个输出端口,所述待新增算子的下游算子的每个输出端口对应于所述待新增算子的下游算子与所述待新增算子的下游算子的一个下游算子之间的消息通道。
14.根据权利要求13所述的控制节点,其特征在于,所述数据流格式文件还用于指示所述待新增算子的输出数据的派发策略,具体为:所述待新增算子的格式文件还用于指示所述待新增算子的输出数据的派发策略;
所述数据流格式文件还用于指示所述待新增算子的上、下游算子的输出数据的派发策略,具体为:所述待新增算子的上、下游算子的格式文件还用于指示所述待新增算子的上、下游算子的输出数据的派发策略。
15.一种工作节点,应用于流计算系统,所述流计算系统包括控制节点和至少一个所述工作节点,至少一个算子分布在所述工作节点上,所述控制节点和至少一个所述工作节点用于对所述流计算系统上部署的流应用的数据进行处理,其特征在于,所述工作节点包括:
接收单元,用于接收所述控制节点发送的控制指令;所述控制指令为所述控制节点根据增量流图生成的,所述增量流图用于指示待新增算子以及所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向;
创建单元,用于根据所述控制指令的指示,创建所述待新增算子并创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;
所述接收单元,还用于接收所述控制节点发送的数据流格式文件;
配置单元,用于根据所述接收单元接收到的所述数据流格式文件,为第一算子配置数据格式;所述第一算子为分布在所述工作节点上的算子,所述第一算子包括:算子集合中的至少一个算子,所述算子集合由所述待新增算子和所述待新增算子的上、下游算子构成;所述数据格式包括输入数据格式和输出数据格式;所述数据流格式文件用于指示所述待新增算子的数据格式和所述待新增算子的上、下游算子的数据格式。
16.根据权利要求15所述的工作节点,其特征在于,
所述接收单元,具体用于接收所述控制节点发送的所述第一算子的格式文件,所述第一算子的格式文件为所述控制节点解析所述数据流格式文件得到的,所述第一算子的格式文件用于指示所述第一算子的数据格式;
所述工作节点,还包括:
解析单元,用于解析所述第一算子的格式文件;
所述配置单元,具体用于根据所述解析单元得到的解析结果为所述第一算子配置数据格式,进而使得所述第一算子创建编解码模型,以对输入所述第一算子的数据进行逻辑运算。
17.根据权利要求16所述的工作节点,其特征在于,所述数据流格式文件还用于指示所述待新增算子的输出数据的派发策略和所述待新增算子的上、下游算子的输出数据的派发策略;
其中,所述待新增算子的输出数据的派发策略用于指示所述待新增算子的输出数据格式与所述待新增算子的输出端口之间的对应关系;所述待新增算子包含至少一个输出端口,所述待新增算子的每个输出端口对应于所述待新增算子与所述待新增算子的一个下游算子之间的消息通道;
所述待新增算子的上游算子的输出数据的派发策略用于指示所述待新增算子的上游算子的输出数据格式与所述待新增算子的上游算子的输出端口之间的对应关系;所述待新增算子的上游算子包含至少一个输出端口,所述待新增算子的上游算子的每个输出端口对应于所述待新增算子的上游算子与所述待新增算子的上游算子的一个下游算子之间的消息通道;
所述待新增算子的下游算子的输出数据的派发策略用于指示所述待新增算子的下游算子的输出数据格式与所述待新增算子的下游算子的输出端口之间的对应关系;所述待新增算子的下游算子包含至少一个输出端口,所述待新增算子的下游算子的每个输出端口对应于所述待新增算子的下游算子与所述待新增算子的下游算子的一个下游算子之间的消息通道。
18.根据权利要求17所述的工作节点,其特征在于,所述第一算子的格式文件还用于指示所述第一算子的输出数据的派发策略;
所述配置单元,具体还用于根据所述解析单元得到的解析结果为所述第一算子配置数据格式和所述第一算子的输出数据的派发策略。
19.一种流计算系统,所述流计算系统包括控制节点和至少一个工作节点,多个算子分布于所述至少一个工作节点中的一个或多个工作节点上,所述控制节点和至少一个工作节点用于对所述流计算系统上部署的流应用的数据进行处理,其特征在于,
所述控制节点,用于获取流应用的增量流图和数据流格式文件,所述增量流图用于指示待新增算子以及所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,所述数据流格式文件用于指示所述待新增算子的数据格式和所述待新增算子的上、下游算子的数据格式,所述数据格式包括输入数据格式和输出数据格式;根据所述增量流图生成控制指令,并向所述至少一个工作节点发送所述控制指令,所述控制指令用于指示所述至少一个工作节点创建所述待新增算子,并根据所述待新增算子与所述待新增算子的上、下游算子之间的数据流走向,创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;向所述至少一个工作节点发送所述数据流格式文件,以指示所述至少一个工作节点根据所述数据流格式文件,为所述至少一个工作节点上创建的所述待新增算子和所述待新增算子的上、下游算子,配置所述数据格式;
所述至少一个工作节点中的任意一个工作节点,用于接收所述控制节点发送的所述控制指令;根据所述控制指令的指示,创建所述待新增算子并创建所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;接收所述控制节点发送的所述数据流格式文件,并根据所述数据流格式文件,为第一算子配置数据格式;所述第一算子为分布在所述工作节点上的算子,所述第一算子包括:算子集合中的至少一个算子,所述算子集合由所述待新增算子和所述待新增算子的上、下游算子构成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410809904.9A CN104572182B (zh) | 2014-12-23 | 2014-12-23 | 一种流应用的配置方法、节点及流计算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410809904.9A CN104572182B (zh) | 2014-12-23 | 2014-12-23 | 一种流应用的配置方法、节点及流计算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572182A CN104572182A (zh) | 2015-04-29 |
CN104572182B true CN104572182B (zh) | 2018-07-13 |
Family
ID=53088340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410809904.9A Active CN104572182B (zh) | 2014-12-23 | 2014-12-23 | 一种流应用的配置方法、节点及流计算系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572182B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022636B (zh) * | 2015-07-30 | 2018-11-09 | 张瑛 | 一种面向智能元的编程语言系统 |
CN106547522B (zh) * | 2015-09-17 | 2020-02-14 | 华为技术有限公司 | 一种流应用优化的方法及装置 |
CN106919368B (zh) * | 2017-01-12 | 2019-01-29 | 北京中科睿芯科技有限公司 | 一种流式数据流图关键路径的加速方法、加速系统、装置及芯片 |
US10977089B2 (en) * | 2018-04-16 | 2021-04-13 | International Business Machines Corporation | Fusing and unfusing operators during a job overlay |
CN111611447B (zh) * | 2019-02-25 | 2022-07-22 | 华为技术有限公司 | 一种计算机及服务器 |
CN110795151A (zh) * | 2019-10-08 | 2020-02-14 | 支付宝(杭州)信息技术有限公司 | 算子并发度调整方法、装置和设备 |
CN110908641B (zh) * | 2019-11-27 | 2024-04-26 | 中国建设银行股份有限公司 | 基于可视化的流计算平台、方法、设备和存储介质 |
CN113553286A (zh) * | 2020-04-24 | 2021-10-26 | 中科寒武纪科技股份有限公司 | 基于多处理节点来构建通信拓扑结构的方法和设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010138658A1 (en) * | 2009-05-29 | 2010-12-02 | Perceptive Software, Inc. | Workflow management system and method |
CN102750330A (zh) * | 2012-05-31 | 2012-10-24 | 国网电力科学研究院 | 一种与业务无关的拓扑图形增量更新方法 |
CN103870340A (zh) * | 2014-03-06 | 2014-06-18 | 华为技术有限公司 | 流计算系统中的数据处理方法、控制节点及流计算系统 |
CN104050261A (zh) * | 2014-06-16 | 2014-09-17 | 深圳先进技术研究院 | 基于Storm的可变逻辑的通用数据处理系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8959313B2 (en) * | 2011-07-26 | 2015-02-17 | International Business Machines Corporation | Using predictive determinism within a streaming environment |
-
2014
- 2014-12-23 CN CN201410809904.9A patent/CN104572182B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010138658A1 (en) * | 2009-05-29 | 2010-12-02 | Perceptive Software, Inc. | Workflow management system and method |
CN102750330A (zh) * | 2012-05-31 | 2012-10-24 | 国网电力科学研究院 | 一种与业务无关的拓扑图形增量更新方法 |
CN103870340A (zh) * | 2014-03-06 | 2014-06-18 | 华为技术有限公司 | 流计算系统中的数据处理方法、控制节点及流计算系统 |
CN104050261A (zh) * | 2014-06-16 | 2014-09-17 | 深圳先进技术研究院 | 基于Storm的可变逻辑的通用数据处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104572182A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572182B (zh) | 一种流应用的配置方法、节点及流计算系统 | |
US10613909B2 (en) | Method and apparatus for generating an optimized streaming graph using an adjacency operator combination on at least one streaming subgraph | |
CN107678790B (zh) | 流计算方法、装置及系统 | |
EP3001646B1 (en) | Service scheduling method, apparatus, and system | |
US20190394132A1 (en) | System and Method for Network Slicing for Service-Oriented Networks | |
CN104679488B (zh) | 一种流程定制开发平台及流程定制开发方法 | |
CN107291458A (zh) | 一种Web应用的插件化构建方法、系统及服务器 | |
CN105260203B (zh) | 一种基于模型的Hadoop部署以及配置方法 | |
CN107959582A (zh) | 一种切片实例的管理方法及装置 | |
CN102281290A (zh) | 一种PaaS云平台的仿真系统及方法 | |
CN109088820A (zh) | 一种跨设备链路聚合方法、装置、计算装置和存储介质 | |
CN105743808A (zh) | 一种适配QoS的方法和装置 | |
CN105407080B (zh) | 一种制定虚拟机部署策略的方法及装置 | |
CN106547522A (zh) | 一种流应用优化的方法及装置 | |
CN110347383A (zh) | 跨平台桌面应用的前端开发方法及装置 | |
CN105656800A (zh) | 一种传输报文的方法及装置 | |
CN110233767A (zh) | 分布式集群的服务配置方法、系统、装置及可读存储介质 | |
CN105446952A (zh) | 用于处理语义片段的方法和系统 | |
CN115934097A (zh) | 生成可执行语句的方法、装置、存储介质及电子装置 | |
CN109815198A (zh) | 移动游戏大数据贴源层实现方法及装置 | |
CN110062396A (zh) | 一种配置基站的方法及装置 | |
CN103152212A (zh) | 一种告警相关性分析方法、装置及网络管理系统 | |
CN106484492A (zh) | 配置接口的方法和系统 | |
US7839849B1 (en) | Formatting fields of communication packets | |
CN105471726B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200423 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou Patentee before: Huawei Technologies Co.,Ltd. |
|
TR01 | Transfer of patent right |