论文部分内容阅读
Spark Streaming是大数据流式计算的最新进展,是建立在Spark引擎上的批量流式数据计算平台。它将流式计算看作一连串短小的Map/Reduce型的批处理作业,以获得较高的数据吞吐量和近实时的数据处理效率。数据划分和数据放置是Spark Streaming的两个核心工作阶段。数据划分将流式数据按照时间序列划分为数据块;数据放置则选择计算节点将划分的数据块放置于计算节点,为最终的数据处理做好准备。现有的Spark Streaming中数据划分与数据放置分别采用的是静态数据划分策略和随机数据放置策略。静态数据划分无法适应流式数据负载动态波动的特征,导致系统计算能力无法合理充分利用;随机数据放置策略则无法适应批次数据处理作业在节点间获得的计算能力非对称的场景,降低了流式数据在各计算节点间并行处理的效率。针对上述问题,本文提了面向Spark Streaming平台的动态数据划分策略与动态加权数据放置策略。其中,数据划分策略采用近似一维搜索法动态寻求流式数据负载波动情况下的最优数据划分间隔,以确保得到较好的数据批量处理性能;动态加权数据放置策略则依据节点的实际计算能力,为节点动态分配数据放置权重,使数据分布与作业在节点间所获得计算能力匹配。本文的主要贡献包括:1)面向Spark Streaming平台的动态数据划分策略DDPS。提出以近似一维搜索法构建动态数据划分模型,通过该模型分析数据划分间隔改变前后批次数据的处理情况,以反馈调节方式不断修正数据划分间隔,直至收敛于优化的数据划分间隔,使流式数据批量处理获得相对较好的运行性能。2)面向Spark Streaming平台的动态加权数据放置策略DWDPS。依据历史任务执行信息,以节点为粒度,构建了节点计算能力的评估模型;并依据节点的相对计算能力设置节点数据放置权重;最终依据数据放置权重和节点的数据块保有量选择数据放置的目标节点,从而保障节点的计算能力与数据规模相匹配,提升流式数据的处理效率。3)原型系统实现及性能评测与分析。基于开源的Spark Streaming平台对动态数据划分策略与加权数据放置策略进行实现,并使用流式负载进行性能评测。测试结果表明,动态数据划分策略与静态数据划分等策略相比,批次数据的平均响应时间最大减少27.73%;动态加权数据放置策略与随机数据放置等策略相比,在存在资源竞争条件下批次数据平均处理时间最大减少23.5%。