关键词:
流处理
算子部署
云边架构
DAG分割
吞吐量预测
强化学习
摘要:
随着物联网技术的不断发展,越来越多的数据在终端设备上产生,传统的基于云端设计的流数据处理系统在处理来自终端的数据时,会面临吞吐量降低,延迟变大等问题。本文通过结合云边架构,把传统部署在云端的流处理系统扩展到边缘端,设计实现了云边架构下流数据处理任务部署方案,通过该方案实现任务在云边架构下的部署与运行。
本文提出的流数据处理任务的部署方案分为三个部分,包括对任务对应的有向无环图进行分割、基于注意力机制的算子部署和Flink下任务的执行。首先是任务对应的有向无环图进行分割,通过分割使得有向无环图分为两个子图,分别部署到云端和边缘端。在进行分割时,本文通过对有向无环图中节点对应算子在不同的系统资源和不同的元组大小下进行采样,利用回归分析和资源预分配实现了对任务的吞吐量预测算法,通过预测不同分割方式下任务的吞吐量,并结合云边带宽找到最大化吞吐量的分割方案。其次,在得到分割方案后,本文提出了一种基于注意力机制的深度强化学习部署算法,利用一个编码器-解码器模型对有向无环图的拓扑序列进行处理,最后得到算子的部署结果,并利用强化学习中的策略梯度方法进行模型参数的更新,优化部署结果。最后根据部署结果,本文基于Flink实现了一个云边架构下的流处理平台,该平台通过对Flink源码进行修改,使得Flink能够按照本文提出的部署算法进行算子部署并执行。
本文通过实验分别对有向无环图的分割算法和算子部署算法进行验证,并与Flink原生部署算法和另外两个基于云边协同的部署算法进行比较,根据实验结果证明了本文提出的算法能够解决云边场景下流数据处理任务的部署问题,相比Flink原生算法在略微增加延迟的基础上极大提升吞吐量,相比另外两个基于云边协同的算法在吞吐量和延迟上均能取得较大优势。