论文部分内容阅读
随着互联网上数据的不断增长,各种数据量在本世纪开始以来的15年时间里已经呈指数级的增长趋势。传统的存储系统已无法在数据处理和数据存储管理方面满足海量数据的需求,而分布式计算框架恰好在数据处理和数据存储管理方面较好地弥补了传统技术的不足。Hadoop是一个能够处理海量数据的分布式计算框架,具有高可扩展性、髙性能、高吞吐量等优点,因此在大数据处理和存储领域得到广泛的应用。HDFS是Hadoop的底层分布式文件系统,是一个提供高性能、高可靠、高可扩展的文件系统,为整个系统提供存储服务。HDFS采用了元数据与真实数据分离的设计模式,并且由一个中心服务器管理这些元数据的名字空间,即在HDFS中存在着一个叫Namenode的节点管理着整个HDFS的元数据,这也带来一个新的问题,即一旦维护着整个HDFS元数据的Namenode失效,那么整个HDFS将会变得不可用,而这个Namenode也便成了整个HDFS的一个单点故障问题(SPOF)。本文针对Namenode的单点故障问题,通过研究分析业界流行的高可用方案,在深入了解了HDFS的架构机制后,提出了一种采用热备Namenode的HDFS高可用方案。该方案能够很好的解决HDFS集群中Namenode的单点故障问题,而不会牺牲较高的性能。该方案在原有HDFS架构的基础上,引进一个热备的Namenode节点,即standby Namenode。并且不断同步active Namenode与standby Namenode内存中的元数据,以保持名字空间的一致性。为了降低HDFS在切换时候所需要的时间,本系统在切换Namenode的时候仅导入日志文件中的数据。这样在active Namenode掉线不可用的时候,系统能够自动且快速的切换到standby Namenode。此外在现有的Hadoop集群中,还存在着另外一个问题。集群中的数据块的访问率也不尽相同,有些数据块的访问率很高,有些则相反。在采取同一种配置的情况下会导致不能很好的利用集群中的资源。因此本文在研究分析了HDFS架构中数据块的存储机制以及奇偶校验算法之后,提出了一种基于奇偶校验算法的数据块弹性存储方案。将奇偶校验算法应用到HDFS数据块存储机制当中。这样不仅仍具有一定的Datanode高可用性,还大大提高了HDFS存储空间的利用率,同时还能节省一大笔如设备、维护、电力等等资源。