多数据流协同处理技术的研究与实现
发布时间:2021-03-27 22:36
目前主流的流处理框架采用的都是分布式子任务独立计算的设计模式,分布式子任务在处理过程中彼此不发生信息交互,无法获取其他子任务的信息要素,分布式子任务间难以进行协同处理。同时,在一些流处理场景中存在具有时序性特征的数据,这类数据在进行后续的分析处理前必须完成时序同步的操作。一方面,为解决流处理框架在分布式子任务难以进行协同计算的问题,本文基于Apache Storm的流处理框架引入协同处理的模式,构建起分布式子任务间协同计算的能力。首先基于Storm实现跨分布式子任务间的实时消息传递,用于为协同计算算子分发、数据同步提供技术支撑,然后进行了分布式子任务协同计算的建模工作,并对模型中的各个模块进行了设计和实现,从而支持用户通过指定算子类型、配置算子内容实现跨子任务的协同计算。另一方面,针对多数据流的时序同步问题,本文设计了主从式结构的时序同步模块。该模块通过Akka并发处理框架进行实现,并基于Akka框架的Actor模型实现了模块中各类角色的消息交互,以及设计了模块中交互的消息类型和数据结构,确定了模块中主控节点和工作节点各自处理相应消息的流程。基于上述的研究工作,本文设计和实现了面向多数...
【文章来源】:中国电子科技集团公司电子科学研究院北京市
【文章页数】:67 页
【学位级别】:硕士
【部分图文】:
图2.131;〇1111拓扑示例图[3()]??(2)组件(Component):由Spout和Bolt两部分组成
Bolt4??Bolt?2?,?/??^=7??〔Spout?B)?J?Bolt?3?'??图2.131;〇1111拓扑示例图[3()]??(2)组件(Component):由Spout和Bolt两部分组成。??(3)?Spout:它是外部数据接入至Storm平台的源头,描述了数据是接入到??Storm集群的具体逻辑,通常Spout可以从日志、关系型或非关系型数据库、消??息队列、分布式文件系统(HDFS)等数据来源进行数据的读取,然后按照相应??的逻辑流入系统拓扑中。??(4)?Bolt:包含拓扑中对数据进行处理的具体逻辑,是拓扑中执行流计算??的组件单元,通常开发人员可根据实际业务需求进行如条件过滤、数据聚合等操??作的编程开发。??上述术语主要是Apache?Storm中对一^^流处理过程中静态事物的表达,当??完成一个拓扑的构建并进行拓扑的提交后,动态的组件(概念)将会具体体现出??来
间进行消息的交互,但是Storm内部并不存在Topology之间的通信机制,开发??人员需要自己进行实现。??如图2.3所示为Worker内部接收、处理和传输消息的流程示意图。??I?」?Executors??I??Executors??p?工作线程k?发送线程?k?M?Executors??|?mm?(^—?—^?Q:?\?传输区??图2.3?Worker内部消息收发流程图[34]??对于每个Worker来说,都会存在相应的一个接收线程监听相应的端口,该??端口通常为Storm的配置项supervisor.slots.ports所定义的端口之一,该接收线程??主要功能为接收来自于网络中的消息并将消息传输至该Worker内部的Executor??的接收队列中去,接收线程中的缓冲区的大小可通过配置文件Storm.yaml中的??配置项topology.receiver.buffer.size进行设置。相应地,每个Worker内部同时存??在一个单独的发送线程,它的功能为从传输队列中拉取消息,并通过网络将消息??发送至集群中的其他Workei?。其中传输队列的大小可通过配置文件Storm.yaml??中的配置项topology.transfer.buffer.size进行设置。在图中可以看出,每个工作进??程(Worker)中可能包含一个或者多个工作线程(Executor),用户都可以通过代??码进行相应的设置。在上图中包含了?Executor内部的运行模型
【参考文献】:
期刊论文
[1]面向电力大数据的多数据流实时处理技术研究[J]. 孟庆强,胡牧,孙立华,郑浩泉. 计算机与数字工程. 2018(05)
[2]分布式流处理技术综述[J]. 崔星灿,禹晓辉,刘洋,吕朝阳. 计算机研究与发展. 2015(02)
[3]面向大数据的分布式流处理技术综述[J]. 张鹏,李鹏霄,任彦,林海伦,杨嵘,郑超. 计算机研究与发展. 2014(S2)
[4]大数据流式计算:关键技术及系统实例[J]. 孙大为,张广艳,郑纬民. 软件学报. 2014(04)
[5]基于云计算的分布式数据协同处理机制研究[J]. 李文虎. 湘潭大学自然科学学报. 2013(04)
[6]云计算环境下海量分布式数据处理协同机制的研究[J]. 戴炳荣,宋俊典,钱俊玲. 计算机应用与软件. 2013(01)
本文编号:3104357
【文章来源】:中国电子科技集团公司电子科学研究院北京市
【文章页数】:67 页
【学位级别】:硕士
【部分图文】:
图2.131;〇1111拓扑示例图[3()]??(2)组件(Component):由Spout和Bolt两部分组成
Bolt4??Bolt?2?,?/??^=7??〔Spout?B)?J?Bolt?3?'??图2.131;〇1111拓扑示例图[3()]??(2)组件(Component):由Spout和Bolt两部分组成。??(3)?Spout:它是外部数据接入至Storm平台的源头,描述了数据是接入到??Storm集群的具体逻辑,通常Spout可以从日志、关系型或非关系型数据库、消??息队列、分布式文件系统(HDFS)等数据来源进行数据的读取,然后按照相应??的逻辑流入系统拓扑中。??(4)?Bolt:包含拓扑中对数据进行处理的具体逻辑,是拓扑中执行流计算??的组件单元,通常开发人员可根据实际业务需求进行如条件过滤、数据聚合等操??作的编程开发。??上述术语主要是Apache?Storm中对一^^流处理过程中静态事物的表达,当??完成一个拓扑的构建并进行拓扑的提交后,动态的组件(概念)将会具体体现出??来
间进行消息的交互,但是Storm内部并不存在Topology之间的通信机制,开发??人员需要自己进行实现。??如图2.3所示为Worker内部接收、处理和传输消息的流程示意图。??I?」?Executors??I??Executors??p?工作线程k?发送线程?k?M?Executors??|?mm?(^—?—^?Q:?\?传输区??图2.3?Worker内部消息收发流程图[34]??对于每个Worker来说,都会存在相应的一个接收线程监听相应的端口,该??端口通常为Storm的配置项supervisor.slots.ports所定义的端口之一,该接收线程??主要功能为接收来自于网络中的消息并将消息传输至该Worker内部的Executor??的接收队列中去,接收线程中的缓冲区的大小可通过配置文件Storm.yaml中的??配置项topology.receiver.buffer.size进行设置。相应地,每个Worker内部同时存??在一个单独的发送线程,它的功能为从传输队列中拉取消息,并通过网络将消息??发送至集群中的其他Workei?。其中传输队列的大小可通过配置文件Storm.yaml??中的配置项topology.transfer.buffer.size进行设置。在图中可以看出,每个工作进??程(Worker)中可能包含一个或者多个工作线程(Executor),用户都可以通过代??码进行相应的设置。在上图中包含了?Executor内部的运行模型
【参考文献】:
期刊论文
[1]面向电力大数据的多数据流实时处理技术研究[J]. 孟庆强,胡牧,孙立华,郑浩泉. 计算机与数字工程. 2018(05)
[2]分布式流处理技术综述[J]. 崔星灿,禹晓辉,刘洋,吕朝阳. 计算机研究与发展. 2015(02)
[3]面向大数据的分布式流处理技术综述[J]. 张鹏,李鹏霄,任彦,林海伦,杨嵘,郑超. 计算机研究与发展. 2014(S2)
[4]大数据流式计算:关键技术及系统实例[J]. 孙大为,张广艳,郑纬民. 软件学报. 2014(04)
[5]基于云计算的分布式数据协同处理机制研究[J]. 李文虎. 湘潭大学自然科学学报. 2013(04)
[6]云计算环境下海量分布式数据处理协同机制的研究[J]. 戴炳荣,宋俊典,钱俊玲. 计算机应用与软件. 2013(01)
本文编号:3104357
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3104357.html