论文部分内容阅读
随着云计算的快速发展,全球数据日益增长,海量数据的存储与计算将使企业的IT投资很难跟上这一节奏。这也进一步迫使企业需要一种成本更低,效率更高,稳定可靠的解决方案,而开源技术Hadoop的出现无疑在技术上提供了这样一种可能。作为一个开源的软件框架,Hadoop能够运用在大数据量的分布式处理中,整体上由一些独立的模块组合而成,主要包括了一个分布式文件系统HDFS和一个分布式数据处理模型MapReduce。其架构采用了主/从(Master/Slave)模式,包括一个NameNode节点和多个DataNode节点,由于整个系统中只有一个NameNode节点,这将会造成系统的单点失效问题,一旦NameNode无法正常运行,则将导致整个HDFS无法对外提供服务。目前,虽然很多企业都已经部署有自己的云平台,但如何将Hadoop系统移植到现有的云平台中以开发企业自己的云架构体系还存在很多有待解决的问题。本文针对上述存在的问题,进行了深入的研究。详细分析了NameNode单点故障的原因,并研究了现有方案的设计思想,同时对将Hadoop移植到现有云平台中的可行性进行了分析,提出了基于虚拟化平台下NameNode的高可用性方案。该方案从两个方面保证了NameNode的高可用性。一方面,实现了一种基于NameNode宿主机负载的迁移策略,当宿主机的负载过大时,该策略实现将NameNode实时迁移到一个合适的宿主机上,保证了NameNode提供不间断的服务。另一方面,对于NameNode的单点问题,通过添加一个备用的NameNode (Standby NameNode),实现了一种自动切换机制,当NameNode宕机时,该机制实现备用节点的自动切换,由该节点继续对外提供服务。最后,通过部署实验环境,模拟宿主机超负荷运行及NameNode单点故障,验证了该方案的可行性,并对性能进行了评估。