面向大数据处理的数据流编程模型和工具综述

本文概述了面向大数据处理的数据流编程模型和工具,对比了传统软件工程中的面向数据流方法,详细介绍了Apache Beam、SWARM、StreamIt、COStream和TensorFlow等数据流编程模型,强调了数据流模型在简化编程和提高并行性方面的优势。此外,还探讨了数据流编程工具如LabVIEW、COStream图形编辑器、Oceanus-ML和Sucuri等,讨论了它们在易用性和可扩展性方面的差异。
摘要由CSDN通过智能技术生成

点击上方蓝字关注我们

面向大数据处理的数据流编程模型和工具综述

邹骁锋, 阳王东, 容学成, 李肯立, 李克勤

湖南大学信息科学与工程学院,湖南 长沙 410008

论文引用格式:

邹骁锋, 阳王东, 容学成, 李肯立, 李克勤.面向大数据处理的数据流编程模型和工具综述. 大数据[J], 2020, 6(3):59-72

ZOU X F, YANG W D, RONG X C, LI K L, LI K Q.A survey of dataflow programming models and tools for big data processing. Big Data Research[J], 2020, 6(3): 59-72

1 引言

自21世纪以来,移动互联网、物联网和云计算等新的信息化技术被广泛应用,这些新兴的技术在应用过程中产生了海量的数据。随着海量数据的产生,处理海量数据的新的大数据处理技术被广泛研究,在大型计算机集群上使用分布式并行计算技术构建的分布式大数据处理平台也得到快速发展,从最初的Hadoop及其生态系统发展到基于内存计算的Flink、Storm、Spark等。基于传统的数据库技术,对大数据离线批处理分析的研究较多,相关应用也较为成熟。但是随着实时产生的数据增多,对流式数据(如视频)进行实时性分析的需求也越来越普遍,这些实时性强的应用领域的海量数据规模对目前的大数据处理平台提出了极大的挑战。经典的应用场景包括网站日志查询、城市实时监控、物联网传感器网络、自动化运维系统的异常检测等。在这些场景下,数据流持续不断地产生,并以大量、快速、时变的方式到达系统,需要系统快速可靠地进行处理。例如,一个城市交通检测系统中包含大量的摄像头,它们分布在不同的路口,每个摄像头收集当前路口的交通信息,持续地产生数据流,并将数据流发送到计算机系统进行处理。接收到数据流的计算机系统对数据流进行分析,进而监控城市道路的实时交通状态,以便最快地基于状态采取相应行动。因此,高通量、低时延是实时数据流计算系统的核心指标。

目前数据流计算采用的是数据流模型(dataflow model)。数据流模型将整个计算任务抽象为数据流图,以数据驱动的方式处理计算,以数据流为中心实现业务的处理过程。数据流计算模式将需要处理的数据分配到计算资源上,实现数据的计算与通信分离,并通过数据的到达来激发计算任务的调度和资源的分配,利用流水线的并行特性充分地挖掘数据流处理中潜在的并行性,进而充分发挥计算资源的性能,并提高资源间负载的均衡性。用户面向数据流描述数据计算的处理逻辑,在程序执行过程中,系统会通过数据触发机制,自发地处理在计算过程中由数据依赖引发的计算顺序问题,在编程过程中减少了因为数据依赖问题而产生的同步和阻塞操作,降低了并行编程的难度。在分布式并行编程领域,程序员使用数据流编程模型,不需要对底层的分布式系统有深入的了解和控制,只需把重点放在领域应用业务流程描述上,关注数据流程的处理过程即可,真正做到了面向领域编程。

本文首先比较了传统软件工程中面向数据流的分析和设计方法;随后详细地描述了几种目前大数据处理平台提供的数据流编程模型的结构定义和模型参考,并分析了两者的差异和不足,总结了数据流编程模型的主要特征和关键要素;最后分析了目前数据流编程的主要方式以及与主流编程工具的结合,针对大数据处理的数据流计算业务需求,给出了可视化数据流编程工具的基本框架和编程模式。

2 传统软件工程中面向数据流的分析和设计方法

软件工程中传 统的结 构化设 计(structured design,SD)提供了一种面向数据流的设计方法,该方法提供了针对业务需求的逻辑模型处理数据流的描述方式,并能够根据数据流处理的逻辑模型导出系统的软件模块结构。在软件开发过程中,面向数据流方法将需求分析阶段生成的数据流图(data flow diagram,DFD)映射成表达软件系统结构的软件模块结构图。在面向数据流的分析方法中,数据流图用于描述系统中信息的处理加工和流动情况。在DFD中,系统的输入数据流经过一系列的变换最终成为系统的输出数据流,在这个过程中流动的就是信息流。DFD能够从业务的需求层面描述信息处理的逻辑模型,但是不能描述系统的执行模式。

2.1 传统软件工程中面向数据流的概念

面向数据流的分析和设计方法,数据流可划分为以下2种类型。

(1)变换流

数据通过输入通路进入系统,进入系统的数据流在变换中心加工处理后变换成另一种数据流,再通过输出通路输出。具有这些特征的数据流被称为变换流。针对变换流的DFD通常由3个部分组成:输入、变换(加工处理)、输出。

(2)事务流

数据通过输入通路到达某一个处理步骤,在处理期间,系统会判定输入数据的类型,选择某个动作序列执行。这种类型的数据流被称为事务流,对事务流的处理单元叫作事务中心,事务流的处理路径从事务中心呈辐射状流出。事务流的DFD主要由以下3个部分组成:输入通路(输入的数据称为事务)、事务判定、根据事务类型选取一条执行路径。

2.2 数据流图

面向数据流的分析和设计方法中的DFD是描述系统中数据流的处理过程的一种图形化工具,它体现了一个系统把业务输入转换为业务输出所需的数据流加工处理过程,DFD的组成要素如图1所示,包括数据源点和数据汇点、数据流、数据加工或处理、数据存储。利用DFD描述基于公式的即时家教系统的数据流处理过程如图2所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值