论文部分内容阅读
流式计算是大数据处理领域中一类重要的计算形态。流式大数据处理平台以实时产生的数据作为输入,数据源源不断地流入到相应的处理组件中进行处理,之后处理结果被实时反馈给用户。目前的资源调度方式仍然是以预先静态的方式为各个应用程序中的计算容器分配资源,使得负载波动时计算容器对资源的需求和分配不相匹配。针对该问题,本文以计算容器的资源需求不同且波动变化为前提,提出以计算容器为粒度的资源实时动态优化调度技术,首先分析随负载变化的资源需求规律,并对下一时间窗口的资源需求进行预测,然后根据预测结果,实时调度每个应用的计算容器在运行过程中的资源(CPU和内存)分配量;同时在流式大数据处理平台中多应用共存的环境下,资源需求高的计算容器能够得到更多的资源来处理数据,而资源需求量低的计算容器能够释放更多的资源供其他应用程序使用,以最小调度开销为前提来提高所有应用的资源利用率。本文的主要贡献包括:1)面向流式大数据处理平台的动态资源调度架构模型。该模型至下而上分为监控/执行层、预测代理层和调度决策层。将动态调度的功能和执行机制解耦,实现预测、调度决策以及监控这三个功能并行执行、相互协同,共同实现资源动态调度。2)面向流式大数据处理平台的在线资源预测方法。实时监控流式大数据处理平台中各个应用程序的计算容器对CPU和内存资源的使用情况,分析流式大数据处理平台中的负载特征,以时间窗口的形式,提出基于资源使用变化率的资源预测模型对CPU和内存资源进行在线组合预测,作为组合调度各个计算容器物理资源的依据。3)面向流式大数据处理平台的资源组合调度方法。该方法基于对未来时间窗口的资源预测结果,确定对计算容器进行释放或者追加物理资源量,根据资源调度结果,确定计算容器是否迁移。本文对计算容器的CPU和内存资源使用情况进行量化,以计算容器资源需求都得到满足、调度过程产生的开销最少、发生迁移的计算容器个数最少这三个目标,将各个计算容器组合来选择合适的计算容器迁移到合适的节点中。4)综合以上的研究成果,基于开源流式大数据处理平台JStorm,设计并实现了资源动态调度系统D-JStorm。D-JStorm整合上述架构、预测和资源组合调度功能,实现对系统中的计算容器进行资源调度和计算容器迁移。该系统无需用户修改顶层应用代码,具有良好的兼容性。5)对D-JStorm进行性能分析。分析结果表明,与JStorm平台相比,平均响应时间最高缩短58.26%,平均缩短了23.18%;CPU资源利用率最高提升17.96%,平均提升11.39%;内存利用率最高提升88.7%,平均提升71.16%。