论文部分内容阅读
云计算是当前国内外研究的热点领域之一,它通过网络整合计算、存储、网络等资源,并且将这些资源按需提供给用户使用。Hadoop是一个开源的分布式系统框架,可以实现大规模的数据计算和存储,通常部署在服务器集群中。将Hadoop部署在IaaS云环境有诸多益处,但IaaS云为Hadoop提供的环境和传统的物理集群存在差异。本文主要研究将Hadoop部署在IaaS云环境,在以下三个方面开展研究性工作:(1)考虑到IaaS云环境中Hadoop不能了解底层物理主机的资源使用情况,为合理利用物理主机的资源和增强虚拟集群的可伸缩性,本文设计将Hadoop f口IaaS云融合的DHCI(Dynamic Hadoop Cluster on IaaS)架构。在DHCI架构中,除私有云和Hadoop原有的套件外,增加监控模块、虚拟机管理模块和调度模块。监控模块收集物理主机负载信息,为Hadoop资源调度研究提供了依据;虚拟机管理模块和调度模块实现集群灵活的伸缩。(2)在DHCI架构基础上,本文提出基于物理主机负载反馈的资源调度策略。通过调度模块获取的物理主机负载信息,并对这些负载信息进行分级处理,确保Hadoop进行资源分配时,有效避免将资源分配给负载过重的物理主机,实现物理主机负载的均衡。(3)本文在Hadoop集群中使用计算节点和存储节点相分离的部署策略,虽然可以较好地保证集群的可伸缩性,但在一定程度上破坏了Hadoop的数据本地性。为此,本文设计IaaS云平台上动态虚拟机迁移策略。基于“移动计算”的思想,充分考虑运算资源特点,将不满足本地性要求的计算节点迁移到相应存储节点所在的物理主机或机架上,以减轻带宽资源的消耗,进而提高系统的性能。最后,本文选用开源的计算管理平台OpenStack作为IaaS云平台,对所提出系统架构和策略进行实现。采用Hadoop勺性能测试工具Hibench实现系统性能测试。结果表明:在运行相同的任务情况下,DHCI架构完成时间要少于普通Hadoop集群。在任务运行过程中,对物理主机负载数据进行统计,可以发现DHCI架构下物理主机之间的负载比普通Hadoop集群更为均衡。在Hadoop数据本地性测试中,在执行相同任务情况下,经过本地性优化Hadoop集群的任务运行时间少于未经过本地性优化的集群。