论文部分内容阅读
随着云计算与大数据技术的的飞速发展,容器技术和Spark技术得到了广泛的应用,使得传统的Spark部署方式显得越来越臃肿。容器的轻量级、易隔离、开箱即用的特点使得开发者越来越重视将大数据技术与容器技术相结合的探索工作。因此本文提出了容器化的Spark集群资源调度优化方案,并通过实验验证了优化算法的有效性,本文主要包括以下三个方面内容:1)针对传统容器调度算法和主流容器编排工具调度容器时仅关注单个容器的调度指标,在应对集群容器调度时表现出衡量指标单一、负载不均衡和调度总时间过长等问题。提出了OABC(Optimised Artificial Bee Colony)并行调度算法,综合考虑了集群中各节点之间,以及各工作节点与数据源之间的关联性。同时,针对容器编排工具Kubernetes的调度模块插件化特性,增加集群容器并行调度策略,以集群为调度的基本单元,以此实现缩短集群容器的整体调度时间和提高服务性能的目的。实验结果表明,所提出的算法能够有效的缩短整个集群容器的构建时间,且使得集群的整体负载更加均衡。2)将Spark集群以容器的形式部署,改变了以往直接利用宿主机资源的方式,这将导致Spark集群处理任务的性能有所损失,因此提出了HPS(Hierarchical Priority Scheduler)调度策略,通过分析容器化的特性,以及根据宿主节点的实际处理性能和Spark的数据本地化优先级规则,将活跃的Worker节点进行分层。当调度实际Task时,将根据分层后的Worker节点进行分层优先级调度,最大限度的降低了数据跨宿主机之间的传输消耗。实验结果表明,该算法能够有效缩短任务处理时长,一定程度上提高了容器化Spark集群整体的处理性能。3)针对以上提出的容器化Spark集群资源调度问题,设计并实现了一套完整的面向容器化Spark集群的资源调度系统。系统包含了任务提交模块,集群容器调度模块以及Spark资源监控和任务调度模块。系统测试结果表明,通过多个模块的相互协作,该系统大大提升了容器化Spark应用的便捷性,且能够提供一个高效、稳定的容器化大数据资源调度解决方案。