论文部分内容阅读
Hadoop凭借其在分布式集群方面的优势,给大数据存储和计算提供了一种高效的解决方案。作为重要的大数据分布式处理平台,Hadoop需要较高的效率和优异的性能,然而,其集群的安装和部署却有一定的局限性,如配置文件多,配置节点数量大,部署过程涉及一系列纷繁复杂的知识等,动辄让分布式集群的部署以失败告终。此外,集群不能够有效地动态分配资源,为了合理利用Hadoop Yarn的资源,队列间经常会互相抢占计算资源,造成重要任务阻塞。因此,对Hadoop平台部署及性能优化的研究是非常必要且有意义的。针对以上问题,目前Hadoop平台的快速部署和自动伸缩主要是基于传统的虚拟机技术(VM)。传统的虚拟化技术对于物理主机的资源利用率无法达到真实物理主机的水平,在资源利用率和启动速度以及性能上有较大的开销,存在难以灵活快速配置文件,自动化创建以及部署服务的问题。本文就Hadoop平台传统的虚拟化技术进行了研究,提出了基于容器虚拟化技术的Hadoop平台部署和优化方案。主要研究工作包括:(1)针对传统虚拟机资源利用率低,启动速度慢以及性能开销大的弊端,提出Hadoop平台快速部署方案,并对其进行设计实现。该方案基于容器的轻量级底层虚拟化方法,通过前期构建Dockerfile和自动化构建脚本,应用serf进行节点管理,并以dnsmasq作为轻量级的DNS服务器,重点解决和优化容器间网络通信与文件共享两大关键问题,从而达到提高Hadoop集群部署的效率,增强其可用性的目的。(2)针对目前主机资源利用率低,部署和扩展复杂,资源隔离无法动态调整以及无法快速响应业务等问题,提出了Yarn on Swarm集群架构方案。该方案采用Swarm实现底层资源调度,每个Docker容器中运行一个NodeManager,资源分配精确到内存大小和CPU核数,通过修改容器个数达到动态改变Yarn资源情况,达到动态地按需伸缩服务,通过更细粒度的资源分配,使其更合理利用Hadoop Yarn的资源。(3)设计实现Hadoop平台性能优化系统。首先针对集群部署存在的网络通信关键问题,采取自主开发扁平化网络插件,让所有的容器网络都在大二层上联通;其次,针对难以灵活快速配置文件,自动化创建和部署服务的问题,通过设计Dockerfile和自动化脚本,设计实现基于Shipyard的容器资源可视化界面以及设计实现基于Jekins的自动化构建和持续集成模块,极大地提高了对集群的监管效率。本文通过对Hadoop平台快速部署和性能优化技术的研究,设计实现了基于容器虚拟化技术的集群方案,凭借容器在底层轻量级的虚拟化方式,集群两层资源调度带来的细粒度资源划分以及系统对容器集群和Hadoop集群友好高效的可视化监控界面等优势,通过对系统功能及性能的测试,验证了论文设计实现的方案在快速部署,自动伸缩和资源优化上面的可行性及高效性。