一种流应用的配置方法、节点及流计算系统.pdf

上传人:a1 文档编号:4030603 上传时间:2018-08-12 格式:PDF 页数:38 大小:2.64MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410809904.9

申请日:

2014.12.23

公开号:

CN104572182A

公开日:

2015.04.29

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/445申请日:20141223|||公开

IPC分类号:

G06F9/445; G06F9/50; G06F9/38

主分类号:

G06F9/445

申请人:

杭州华为数字技术有限公司

发明人:

洪玉虹; 史云龙

地址:

310052浙江省杭州市滨江区滨兴路301号3幢A楼301室

优先权:

专利代理机构:

北京中博世达专利商标代理有限公司11274

代理人:

申健

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种流应用的配置方法、节点及流计算系统,涉及计算机技术领域,可以对流应用进行升级,以使得流应用能够处理新增业务逻辑的待处理业务,并避免对系统资源的过多占用。具体方案为:控制节点获取流应用的增量流图和数据流格式文件;控制节点根据增量流图生成控制指令,并向至少一个工作节点发送控制指令,控制指令用于指示至少一个工作节点创建待新增算子,并创建待新增算子与待新增算子的上、下游算子之间的消息通道;控制节点向至少一个工作节点发送数据流格式文件,以指示至少一个工作节点根据数据流格式文件,为至少一个工作节点上创建的待新增算子和待新增算子的上、下游算子,配置数据格式。

权利要求书

权利要求书
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.  一种流计算系统,所述流计算系统包括控制节点和至少一个工 作节点,多个算子分布于所述至少一个工作节点中的一个或多个工作节 点上,用于对所述流计算系统上部署的流应用的数据进行处理,其特征 在于,
所述控制节点,用于获取流应用的增量流图和数据流格式文件,所 述增量流图用于指示待新增算子以及所述待新增算子与所述待新增算子 的上、下游算子之间的数据流走向,所述数据流格式文件用于指示所述 待新增算子的数据格式和所述待新增算子的上、下游算子的数据格式, 所述数据格式包括输入数据格式和输出数据格式;根据所述增量流图生 成控制指令,并向所述至少一个工作节点发送所述控制指令,所述控制 指令用于指示所述至少一个工作节点创建所述待新增算子,并根据所述 待新增算子与所述待新增算子的上、下游算子之间的数据流走向,创建 所述待新增算子与所述待新增算子的上、下游算子之间的消息通道;向 所述至少一个工作节点发送所述数据流格式文件,以指示所述至少一个 工作节点根据所述数据流格式文件,为所述至少一个工作节点上创建的 所述待新增算子和所述待新增算子的上、下游算子,配置所述数据格式;
所述至少一个工作节点中的任意一个工作节点,用于接收所述控制 节点发送的所述控制指令;根据所述控制指令的指示,创建所述待新增 算子并创建所述待新增算子与所述待新增算子的上、下游算子之间的消 息通道;接收所述控制节点发送的所述数据流格式文件,并根据所述数 据流格式文件,为第一算子配置数据格式;所述第一算子为分布在所述 工作节点上的算子,所述第一算子包括:算子集合中的至少一个算子, 所述算子集合由所述待新增算子和所述待新增算子的上、下游算子构成。

说明书

说明书一种流应用的配置方法、节点及流计算系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种流应用的配置方法、节 点及流计算系统。
背景技术
流计算是一种类似流水线式的数据处理模式,待处理的数据像流水 一样连续不断的进入流计算系统,流计算系统进行实时处理并输出结果。 在流计算系统中,针对具体业务的流计算是由部署在流计算系统中的流 应用完成的。流应用逻辑模型图,通常简称为流图,可以指示多个算子 以及多个算子之间的数据流走向,其中,数据流用于表示算子之间的数 据传输,算子承载有待处理业务的业务逻辑,用于对流应用的数据进行 处理,业务逻辑具体为用于处理待处理业务所使用的规则或算法。如图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所示的流图是匹配的。
需要说明的是,本发明实施例中的流图可以为有向无环图(英文: Directed Acyclic 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)、磁碟或者光盘等各种可以 存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不 局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本 发明的保护范围应以所述权利要求的保护范围为准。

一种流应用的配置方法、节点及流计算系统.pdf_第1页
第1页 / 共38页
一种流应用的配置方法、节点及流计算系统.pdf_第2页
第2页 / 共38页
一种流应用的配置方法、节点及流计算系统.pdf_第3页
第3页 / 共38页
点击查看更多>>
资源描述

《一种流应用的配置方法、节点及流计算系统.pdf》由会员分享,可在线阅读,更多相关《一种流应用的配置方法、节点及流计算系统.pdf(38页珍藏版)》请在专利查询网上搜索。

本发明实施例公开了一种流应用的配置方法、节点及流计算系统,涉及计算机技术领域,可以对流应用进行升级,以使得流应用能够处理新增业务逻辑的待处理业务,并避免对系统资源的过多占用。具体方案为:控制节点获取流应用的增量流图和数据流格式文件;控制节点根据增量流图生成控制指令,并向至少一个工作节点发送控制指令,控制指令用于指示至少一个工作节点创建待新增算子,并创建待新增算子与待新增算子的上、下游算子之间的消息。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1