一种流图优化方法及其装置制造方法及图纸

技术编号:11263507 阅读:71 留言:0更新日期:2015-04-08 08:56
本发明专利技术实施例提供了一种流图优化方法和装置,涉及流处理领域。通过接受用户提供的流应用流图,解析该流图,构造算子节点与数据流边描述的流图,按最大原子划分规则对流图进行拆解,以得到至少一个子流图,根据合并算法对所述至少一个子流图,进行邻接算子合并,以得到优化流图。通过对用户提供的流图进行拆解和合并,实现流图计算逻辑的均衡以及减少冗余流量传输,提高了流系统资源的利用率与流应用的执行性能。

【技术实现步骤摘要】
【专利摘要】本专利技术实施例提供了一种流图优化方法和装置,涉及流处理领域。通过接受用户提供的流应用流图,解析该流图,构造算子节点与数据流边描述的流图,按最大原子划分规则对流图进行拆解,以得到至少一个子流图,根据合并算法对所述至少一个子流图,进行邻接算子合并,以得到优化流图。通过对用户提供的流图进行拆解和合并,实现流图计算逻辑的均衡以及减少冗余流量传输,提高了流系统资源的利用率与流应用的执行性能。【专利说明】一种流图优化方法及其装置
本专利技术实施例涉及流处理领域,更具体地,涉及一种流图优化方法及其装置。
技术介绍
流计算(Stream Computing),即实时流处理,是指将待处理数据看成数据流的形式来处理。数据流是在时间分布和数量上无限的一系列数据记录的集合体;数据元组是数据流的最小组成单元。流计算最重要的特性是能够实现计算结果的实时响应。数据的价值随着时间的流逝而降低,数据出现后必须尽快地对其进行处理,最好数据出现时便立刻对其进行处理,产生一个数据进行一次处理,而不是缓存起来成一批处理,这就是流计算的意义所在。 流计算模型图,简称流图(Streaming Graph),可用图1来表示。如图1所示,图中算子opl-op7表示算子(operator),图中边sl-s7表示数据流(stream)。其中,算子是承载业务逻辑的数据处理单元,为流计算平台分布式调度执行的最小单元,而数据流则是算子间交互的数据。 用户编写流图,将编写好的流图提交到流计算平台上,流计算平台解析流图,然后调度到不同的物理机器上分布式执行,实现不同的业务场景。当前业界主流的流计算平台为IBM InfoSphere Streams,用户在InfoSphere Streams的集成开发环境下,通过拖拽编辑,将算子和数据流边连线组成流图,然后提交部署。流图编写的好坏直接影响应用部署后的执行性能。而基于流计算平台开发应用的用户大多为市场人员,或是缺乏流式应用开发经验的工程人员,导致开发出来的流图存在计算逻辑不均衡和冗余流量传输,导致系统资源不能充分利用,流应用执行性能差。
技术实现思路
本专利技术实施例提供一种流图优化方法及装置,通过对流图进行优化再部署,提高了流处理平台资源的利用率与流应用的执行性能。 本专利技术实施例第一方面,提供了一种用于流计算系统的流图优化方法,所述流计算系统包括多个工作节点和主控节点,所述方法由主控节点执行,所述方法包括: 接收用户流图; 解析所述用户流图,构造算子节点与数据流边描述的流图; 按照流图类型的最大原子划分规则对流图进行拆解,以得到至少一个子流图,其中所述至少一个子流图中的任一子流图包含尽可能多的算子,且所述任一子流图只属于所述流图类型中的一种。 根据所述至少一个子流图中各个子流图的处理逻辑复杂度,对所述至少一个子流图进行邻接算子合并,以得到优化流图,使得经邻接算子合并后各个子流图的处理逻辑复杂度达到均衡。 结合第一方面所述的流图优化方法,在第一方面第一种可能的实现方式中,所述流图类型包括:脉冲式流图、分联式流图和迭代式流图; 所述脉冲式流图,包括数据流按流图算子排列顺序依次流过;其中,脉冲式流图包含脉冲式算子,所述脉冲式算子包含窗口缓存,且数据输出具有批处理特征; 所述分联式流图,包括数据流在入口算子处分流,在出口算子处汇聚;其中,分联式流图包含分联式算子,所述分联式算子为所述分联式流图的入口算子或出口算子; 所述迭代式流图,包括后继算子的输出数据流返回至前面算子作为输入流,进行迭代处理;其中,迭代式流图包含迭代式算子,所述迭代式算子为所述迭代式流图的入口算子或出口算子。 结合第一方面或第一方面第一种可能的实现方式,在第一方面第二种可能实现方式中,所述按照流图类型的最大原子划分规则对流图进行拆解,以得到至少一个子流图,包括: 遍历流图中算子,找出多种类型算子;其中,多种类型的算子包括迭代式算子、分联式算子和脉冲式算子; 从所述多种类型算子中按优先级从高到低的顺序选取用作边界算子的算子;其中,优先级从高到低的顺序依次为迭代算子、分联算子、脉冲算子; 根据所述选取的边界算子采用所述流图类型的最大原子划分规则对所述流图中算子进行划分,以得到至少一个子流图;其中,所述最大原子划分规则,包括:分裂出的子流图包含尽可能多的算子,且任一子流图只属于迭代式流图、分联式流图和脉冲式流图中的一种。 结合第一方面或第一方面第一种可能实现方式或第一方面第二种可能实现方式,在第一方面第三种可能实现方式中,所述根据所述至少一个子流图中各个子流图的处理逻辑复杂度,对所述至少一个子流图进行邻接算子合并,以得到优化流图,使得经邻接算子合并后所述各个子流图的处理逻辑复杂度达到均衡,具体包括: 根据集群系统资源和算子逻辑复杂度确定合并范围; 根据合并算法在所述确定的合并范围内对所述至少一个子流图进行邻接算子合并,以得到优化流图,使得经邻接算子合并后各个子流图的处理逻辑复杂度达到均衡。 结合第一方面第三种可能实现方式,在第一方面第四种可能实现方式中,所述根据合并算法在所述确定的合并范围内对所述至少一个子流图进行邻接算子合并,以得到优化流图,具体包括: 若待合并的邻接算子为系统算子,根据合并优先级列表对所述至少一个子流图进行邻接算子合并,以得到优化流图; 若待合并的邻接算子为用户自定义算子,计算所述用户自定义算子的合并前算子相对复杂度及合并后算子相对复杂度,对所述至少一个子流图进行邻接算子合并,以得到优化流图,使得合并后算子相对复杂度小于或等于合并前算子相对复杂度的N倍,其中N大于或等于I。 结合结合第一方面或第一方面第一种可能实现方式或第一方面第二种可能实现方式或第一方面第三种可能实现方式或第一方面第四种可能实现方式,在第一方面第五种可能实现方式中,所述方法还包括: 将优化后的流图部署到工作节点中执行。 本专利技术实施例第二方面提供了一种用于流计算系统的流图优化装置,所述流计算系统包括多个工作节点和主控节点,所述主控节点包括: 接收模块,用于接收流图; 解析模块,用于解析所述流图,构造流图算子与数据流边描述结构; 拆解模块,用于按照流图类型的最大原子划分规则对流图进行拆解,以得到至少一个子流图; 合并模块,用于根据所述至少一个子流图中各个子流图的处理逻辑复杂度,对所述至少 一个子流图进行邻接算子合并,以得到优化流图,使得经邻接算子合并后所述各个子流 图的处理逻辑复杂度达到均衡。 结合第二方面,在第二方面第一种实现方式中,所述流图类型包括:脉冲式流图、分联式流图和迭代式流图; 所述脉冲式流图,包括数据流按流图算子排列顺序依次流过;其中,脉冲式流图包含脉冲式算子,所述脉冲式算子包含窗口缓存,且数据输出具有批处理特征; 所述分联式流图,包括数据流在入口算子处分流,在出口算子处汇聚;其中,分联式流图包含分联式算子,所述分联式算子为所述分联式流图的入口算子或出口算子; 所述迭代式流图,包括后继算子的输出数据流返回至前面算子作为输入流,进行迭代处理;其中,迭代式流图包含迭代式算子,所述迭代式算子为所述迭代式流图的入口算子或出口算子。 结合第二方面或第二方面第本文档来自技高网
...
一种流图优化方法及其装置

【技术保护点】
一种用于流计算系统的流图优化方法,其特征在于,所述流计算系统包括多个工作节点和主控节点,所述方法由主控节点执行,所述方法包括:接收用户流图;解析所述用户流图,构造算子节点与数据流边描述的流图;按照流图类型的最大原子划分规则对流图进行拆解,以得到至少一个子流图,其中所述至少一个子流图中的任一子流图包含尽可能多的算子,且所述任一子流图只属于所述流图类型中的一种。根据所述至少一个子流图中各个子流图的处理逻辑复杂度,对所述至少一个子流图进行邻接算子合并,以得到优化流图,使得经邻接算子合并后各个子流图的处理逻辑复杂度达到均衡。

【技术特征摘要】

【专利技术属性】
技术研发人员:张松山夏命榛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1