论文部分内容阅读
随着实时数据处理需求不断被提出,流数据处理系统得到了学术界和工业界的广泛关注和研究。基于批处理模式的流数据处理系统是一类将流数据处理转换成连续批次作业的系统,近年来成为了新的研究热点。然而现有的基于批处理模式的流数据处理系统实际部署运行中会面临诸多问题。一方面,系统负载会处于动态变化中,而一般的资源分配方式是基于资源预留思想,以最大化资源配置来应对峰值负载。但用户往往难以提前预知峰值负载并准确做出最大化配置,无法保证系统性能,并且这种方式下欠载时会带来资源浪费。另一方面,系统面临负载不均衡时,少数节点任务执行缓慢会严重影响系统性能。基于容器的弹性流数据处理系统可以有效解决上述问题。系统充分利用容器的快速启动和灵活的资源管理机制,采用容器化运行方式来解决在虚拟机或物理机环境下资源扩展性较差的问题。系统通过采集运行时信息并分析当前集群的作业执行状态,结合负载特征设计实现了一种具有前瞻性的弹性资源调度方案。具体包括:自适应集群扩展机制,该机制会根据系统运行时信息对集群进行扩展,保证过载时系统的性能并减少欠载时的资源浪费;节点需求感知资源调度机制则会根据任务执行器节点的负载情况,重新调度节点CPU资源,从而避免传统基于负载数据重新划分的负载均衡带来的开销。实验结果表明,相比于Spark Streaming,在流数据负载变化的情况下,系统能够高效地实现集群扩展,保证系统过载时的性能并减少欠载时的资源消耗,并且可减少资源使用量达30%。面临负载不均衡问题时,系统能够减少批次作业处理时间。