论文部分内容阅读
随着云计算技术的不断发展与成熟,越来越多的上层应用能够通过云计算虚拟化技术来实现底层物理资源的管理与弹性伸缩。传统的虚拟化技术通常以虚拟机为单位,存在资源利用率低、启动速度慢、运维成本高等问题。因此,以Docker容器技术为代表的轻量级虚拟化容器技术受到了学术界与工业界的广泛关注。除了单个容器技术之外,容器集群管理系统在实际综合性应用中也非常重要。Kubernetes是Google内部经过数十年生产实践考验的容器集群管理系统Borg的开源版本,使用Kubernetes对Docker容器集群进行统一管理能够为容器化应用提供资源调度、自动化部署、服务发现、弹性伸缩等功能。大数据并行计算是云计算平台中的典型应用场景。在当今数据量急剧增长的时代,大数据并行计算系统如Hadoop、Spark等在工业界和学术界被广为使用和研究。当前大数据并行计算系统种类繁多且适用场景多样,因此将大数据系统和应用部署在云平台中,实现大数据与云计算平台的融合与集成使用,具有多租户资源共享、任务弹性调度、方便运维、资源利用率高等优点。而传统的虚拟化方式难以满足大数据综合部署应用场景的需求。将大数据并行计算系统部署构建在基于Docker+Kubernetes容器云平台中,能够有效解决传统云计算平台在大数据场景下资源利用率低、启动速度慢、运维成本高等方面的不足。但是,集成和部署容器化大数据云平台在提供众多优势的同时,也带来了数据分布式持久化难以处理、数据本地化调度性能低下等存储与调度方面的问题。针对上述问题与不足,本文研究容器化大数据云平台集成技术,研究构建基于Docker+Kubernetes、融合Hadoop+Spark的容器化大数据云平台。本文的主要工作和贡献点如下:(1)容器化大数据云平台技术研究,在此基础上研究构建基于Docker+Kubernetes、融合了 Hadoop+Spark的容器化大数据云平台。基于Docker容器技术,使用Kubernetes进行统一管理,可将多种大数据并行计算系统和应用部署构建在云平台上,以实现自动化部署、在线扩容缩容、应用滚动升级等功能。(2)YARN和Kubernetes双层调度机制研究。为了提高云平台在大数据场景下的调度效率,研究实现一种YARN和Kubernetes的双层调度机制,并基于cAdvisor、Docker Registry、Zeppelin等开源软件,在集群监控、镜像存储、可视化等方面对平台功能进行扩展。(3)基于Push模型的YARN本地性优化调度方法研究。在分析总结YARN现有调度机制及其数据本地性调度影响因素的基础上,针对YARN现有调度机制在内存计算场景下数据本地性调度能力不佳的问题,研究提出一种基于Push模型的YARN本地性调度机制,并进一步研究实现一种Resource Request剪枝算法。实验结果表明,该调度机制在数据本地性、应用运行时间、吞吐量方面,相比YARN的现有调度机制,均有较大的性能提升。(4)基于Alluxio的统一数据存储访问技术研究。基于Alluxio统一命名空间,研究实现云平台统一数据存储访问技术,在解决云平台数据分布式持久化问题的同时,简化容器化大数据云平台底层文件系统的管理。同时,研究实现一个以目录为单位的CacheList方案,提高了 Alluxio中间结果缓存访问效率。本文研究工作中的YARN本地性调度优化以及CacheList缓存优化工作,已经部署使用于苏宁云商的大数据云计算系统平台中,并得到上线运行服务。