[发明专利]一种用于倾斜数据的流式计算引擎运行方法及系统有效
申请号: | 201911191154.2 | 申请日: | 2019-11-28 |
公开(公告)号: | CN110990059B | 公开(公告)日: | 2021-11-19 |
发明(设计)人: | 程学旗;李冰;张志斌;郭嘉丰 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国 |
地址: | 100080 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 倾斜 数据 计算 引擎 运行 方法 系统 | ||
本发明提出一种用于倾斜数据的流式计算引擎运行方法及系统,包括:获取包含倾斜数据的用户作业,并将该用户作业转换为表示该用户作业的有向无环图,根据该有向无环图中算子的业务处理逻辑,将该有向无环图中节点划分为有状态算子和无状态算子;将全部状态算子包装为有状态任务后输入有状态数据流,将全部无状态算子包装为无状态任务后输入无状态数据流;将该无状态数据流中无状态任务复制发送至任意计算节点,得到无状态处理结果;将该有状态数据流中有状态任务转换为包含键和值的数据记录,将包含相同键的数据记录分配至相同计算节点,得到有状态处理结果,集合该无状态处理结果和有状态处理结果作为该用户作业的运行结果。
技术领域
该发明创造属于分布式计算领域,具体应用在分布式流式数据计算领域。
背景技术
流式计算引擎中,由于输入数据是在用户作业启动后源源不断到来的,导致数据源的分布具有未知性。真实场景中,数据往往是倾斜的,例如社交网络中,名人会有更多的粉丝,热点事件会有更多的评论。且倾斜数据的分布也会动态变化,如社交网络中,热点事件在随时间推移而改变,这使得数据分布具有不确定性。
流式计算引擎中,计算算子分为状态(stateful)算子和无状态(stateless)算子两类。无状态算子计算时,只考虑当前的输入数据,不需要考虑上下文及历史计算信息,相同的输入数据总会有相同的计算输出;状态算子在计算过程中需保存计算状态,以进行更复杂的操作,可以在诸如机器学习模型训练及数据聚合等场景中使用,状态算子中,由于流计算系统的延迟敏感性,计算状态只能本地访问,这意味着相同键值的数据需要被发送至相同节点计算。倾斜数据场景下,无状态算子可处理任意数据或被调度至任意节点,不会造成系统负载不均衡。状态算子中,由于相同键值的输入数据只能被发送至相同节点,在倾斜数据场景下可能会造成系统负载不均衡。
流式计算引擎将状态算子的输入数据进行切分,以保证相同键值的数据被分配至相同节点。传统的流式计算引擎,如Flink、Spark Streaming等,均使用静态数据切分策略,数据源的未知性及分布不确定性导致了静态切分策略难以在分布改变时作出动态调整,造成系统负载不均衡,无法达到最优计算性能。
现有流计算引擎使用静态数据划分策略,数据划分后,每个分区都必须对应一个物理计算节点,而倾斜场景会导致数据分区大小不均匀,较大分区对应的物理节点会有较高的负载,造成了集群负载不均衡,不能充分利用计算资源。且静态分区策略无法应对动态的数据分布改变,当倾斜数据分布改变时,为了提高计算资源利用率,系统需要重新分区,而重新分区操作需要暂停整个集群的计算任务,对系统性能影响较大。因此如何解决作业在倾斜数据集下的负载不均衡问题是本技术领域需要解决的技术问题。
发明内容
本发明的目的是提高现有系统在数据倾斜场景下的资源利用率,提出了一种支持倾斜数据的流式计算引擎。
针对现有技术的不足,本发明提出一种用于倾斜数据的流式计算引擎运行方法,其中包括:
步骤1、获取包含倾斜数据的用户作业,并将该用户作业转换为表示该用户作业的有向无环图,根据该有向无环图中算子的业务处理逻辑,将该有向无环图中节点划分为有状态算子和无状态算子;
步骤2、将全部状态算子包装为有状态任务后输入有状态数据流,将全部无状态算子包装为无状态任务后输入无状态数据流;
步骤3、将该无状态数据流中无状态任务复制发送至任意计算节点,得到无状态处理结果;
步骤4、将该有状态数据流中有状态任务转换为包含键和值的数据记录,将包含相同键的数据记录分配至相同计算节点,得到有状态处理结果,集合该无状态处理结果和有状态处理结果作为该用户作业的运行结果。
所述的用于倾斜数据的流式计算引擎运行方法,其中该步骤4包括:将状态数据流划分为固定数量的数据片,该数据片可被计算节点并行处理,或根据调度器的决策调度至其他计算节点处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911191154.2/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置