支持迭代计算的流式数据处理单元及系统技术方案

技术编号:12907031 阅读:112 留言:0更新日期:2016-02-24 14:23
本发明专利技术提供一种支持迭代计算的流式数据处理单元及系统。该处理单元包括:至少一个输入适配和多个处理节点,处理节点包括流式算子和迭代式算子,输入适配与流式算子或迭代式算子之间通过有向边连接,流式算子与迭代式算子或流式算子之间通过有向边连接。本发明专利技术提供的支持迭代计算的流式数据处理单元及系统,可实现流式数据处理中的基本的迭代计算需求,解决了流式数据处理中的迭代计算问题。

【技术实现步骤摘要】

本专利技术涉及并行与分布式计算
,尤其涉及一种支持迭代计算的流式数据 处理模型及系统。
技术介绍
目前随着大数据处理的技术发展,以Hadoop为代表的批量数据处理系统已经逐 渐不能满足所有的应用需求,尤其是在金融产品交易、互联网信息处理等领域的应用大多 要求较高的实时处理能力,以应对持续产生的数据流,因此一些流式数据处理系统得到广 泛的应用。 流式数据是具有时间顺序的数据序列,可以被看成历史数据和不断增加的更新数 据的并集。流式数据处理系统一般不依赖外存,而是在内存中进行计算,以取得更好的时效 性。现有的流式数据处理系统有Storm、S4、Timestream等,图1为现有的Storm系统中的 流式数据处理模型示意图,如图1所示的流式数据处理模型是由一系列处理节点S和处理 节点B构成的有向无环图(Directed Acyclic Graph,以下简称:DAG),通过数据流实现处 理节点S和处理节点B之间的关联,处理节点S负责从外部数据源不间断地读取数据,并以 数据元组(Tuple)的形式发送给相应的处理节点B,处理节点B负责对接收到的数据流进 行计算,实现过滤、聚合、查询等具体功能,可以级联,也可以向外发送计算后的数据流。图 2为现有的S4系统中的流式数据处理模型示意图,如图2所示的流式数据处理模型是由多 个处理单元PE (processing element)之间的逻辑构成的DAG,PE是S4系统中的基本计算 单元,在S4系统中,数据流是由事件的有序序列构成的,事件在各个PE中被计算,在PE之 间流动,在PE8得到最终的数据流。现有的Timestream系统中的流式数据处理模型也是由 多个处理节点构成的DAG实现的,图3为现有的Timestream系统中的流式数据处理模型中 的一个处理节点的示意图,在数据流DAG中的每个处理节点V,在获取输入数据流i后,触发 相关操作fv,产生新数据流〇,并更新处理节点v的状态。 可以看出,上述三种流式数据处理模型构成的处理系统在处理流式数据时,一般 都是在流式数据到达处理节点后,处理节点在内存中直接进行数据的实时计算后输出计 算结果,对于实时性的需求都能得到很好的满足。但是在实际应用中,对于流式数据的处 理出现了迭代计算的需求,例如在微博数据的短文本处理应用中可能存在网页排名算法 (PageRank)或者用户分级算法(TunkRank)用户影响力计算的应用,在实时交通应用中有 实时最短路径规划等迭代计算,现有的上述流式数据处理系统虽然满足了实时性需求,却 不能够实现流式数据处理中的迭代计算问题。
技术实现思路
本专利技术提供一种支持迭代计算的流式数据处理模型及系统,以解决流式数据处理 中的迭代计算问题。 第一方面,本专利技术提供一种支持迭代计算的流式数据处理模型,包括: 至少一个输入适配和多个处理节点,所述处理节点包括流式算子和迭代式算子, 所述输入适配与所述流式算子或迭代式算子之间通过有向边连接,所述流式算子与所述迭 代式算子或所述流式算子之间通过有向边连接; 所述输入适配用于:接收数据流,并将接收的数据流按照预设的封装策略封装为 流式数据消息后发送给所连接的处理节点; 所述流式算子用于: 将接收到的流式数据消息放入第一处理队列中,调用预设的第一流式处理函数进 行处理,将处理后产生的流式数据消息封装后发送给所连接的处理节点或输出; 所述迭代式算子用于: 在接收到流式数据消息时,将接收到的流式数据消息放入第二处理队列中,调用 预设的第二流式处理函数进行处理,将处理后产生的流式数据消息封装后发送给所连接的 处理节点或输出,和/或,将处理后产生的迭代数据消息发送给自身或与自身并行化的迭 代式算子; 在接收到迭代数据消息时,将接收到的迭代数据消息放入第三处理队列中,调用 预设的迭代处理函数进行处理; 其中,所述流式数据消息包含待处理数据,所述迭代数据消息包含待处理数据、迭 代轮数和最大迭代轮数。 进一步地,所述迭代式算子还用于: 在调用预设的迭代处理函数进行处理后,判断是否产生新的迭代数据消息,若产 生,则将所述新的迭代数据消息中的迭代轮数加一,在判断出加一操作后的迭代轮数大于 最大迭代轮数时结束迭代,否则将加一操作后的新的迭代数据消息发送给自身或与自身并 行化的迭代式算子。 进一步地,所述处理节点还包括: 聚合式算子,所述聚合式算子用于: 将接收到的流式数据消息放入第四处理队列中,判断是否接收了所有与所述聚合 式算子连接的上游处理节点发送的流式数据消息,若是则调用预设的第三流式处理函数对 缓存的所有流式数据消息进行处理,将处理后产生的流式数据消息封装后发送给所连接的 处理节点或输出,若否则继续等待接收新的流式数据消息。 进一步地,所述聚合式算子还用于: 在将接收到的流式数据消息放入第四处理队列中之前,对接收到的流式数据消息 进行预处理和合并。 进一步地,所述迭代式算子还用于: 在将接收到的流式数据消息放入第二处理队列中之前,对接收到的流式数据消息 进行预处理和合并,或者, 在将接收到的迭代数据消息放入第三处理队列中之前,对接收到的迭代数据消息 进行预处理和合并。 进一步地,所述流式数据消息的消息格式为:(fl,f2,……fN),其中fX表示第X 个字段的内容,共N个字段; 所述迭代数据消息的消息格式为:(fl,f2,......fN,Num,Max Num),其中Num和 Max Num分别是迭代轮数和最大迭代轮数。 第二方面,本专利技术提供一种支持迭代计算的流式数据处理系统,包括一个主控机 器和多个计算机器,所述主控机器用于负责所述多个计算机器构成的整个集群的状态监控 和资源分配,所述主控机器还用于接收数据流,并对接收到数据流进行分析并调度分配到 各个计算机器上处理; 所述计算机器内部设置第一方面所述的支持迭代计算的流式数据处理模型,所述 计算机器用于接收所述主控机器调度分配的数据流,并执行内部设置的支持迭代计算的流 式数据处理模型处理所接收的数据流。 本专利技术提供的支持迭代计算的流式数据处理模型及系统,通过在流式数据处理模 型中包括输入适配和流式算子与迭代式算子,流式算子执行流式计算,迭代式算子可以向 自身发送迭代数据消息,可以触发自环式的迭代计算,因此可实现流式数据处理中的基本 的迭代计算需求,解决了流式数据处理中的迭代计算问题。【附图说明】 为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术 描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一 些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这 些附图获得其他的附图。 图1为现有的Storm系统中的流式数据处理模型示意图; 图2为现有的S4系统中的流式数据处理模型示意图; 图3为现有的Timestream系统中的流式数据处理模型中的一个处理节点的示意 图; 图4为本专利技术支持迭代计算的流式数据处理模型实施例一的结构示意图; 图5为本专利技术支持迭代计算的流式数据处理模型实施例二的结构示意图。【具体实施方式】 为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术中的附图,对本 专利技术中的技术方案进行清楚、完整地描述,显然本文档来自技高网
...

【技术保护点】
一种支持迭代计算的流式数据处理模型,其特征在于,包括:至少一个输入适配和多个处理节点,所述处理节点包括流式算子和迭代式算子,所述输入适配与所述流式算子或迭代式算子之间通过有向边连接,所述流式算子与所述迭代式算子或所述流式算子之间通过有向边连接;所述输入适配用于:接收数据流,并将接收的数据流按照预设的封装策略封装为流式数据消息后发送给所连接的处理节点;所述流式算子用于:将接收到的流式数据消息放入第一处理队列中,调用预设的第一流式处理函数进行处理,将处理后产生的流式数据消息封装后发送给所连接的处理节点或输出;所述迭代式算子用于:在接收到流式数据消息时,将接收到的流式数据消息放入第二处理队列中,调用预设的第二流式处理函数进行处理,将处理后产生的流式数据消息封装后发送给所连接的处理节点或输出,和/或,将处理后产生的迭代数据消息发送给自身或与自身并行化的迭代式算子;在接收到迭代数据消息时,将接收到的迭代数据消息放入第三处理队列中,调用预设的迭代处理函数进行处理;其中,所述流式数据消息包含待处理数据,所述迭代数据消息包含待处理数据、迭代轮数和最大迭代轮数。

【技术特征摘要】

【专利技术属性】
技术研发人员:林学练申阳王家兴马帅
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

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

1