论文部分内容阅读
这是一个数据高速扩张的时代。根据技术研究机构IDC的预计,大量新数据无时不刻不在涌现,它们以每年50%的速度在增长,或者说每两年就要翻一番多。并不仅仅是数据的洪流越来越大,而且全新的支流也会越来越多。并且数据呈现出大量、多样、快速和高价值的特点。数据没有办法在可容忍的时间内使用常规的软件方法完成存储、管理和任务处理。如何应对数据的挑战成为一个亟待解决的难题。越来越多的高校、科研机构、互联网公司投入到大规模数据存储和计算模型及工具的研究工作当中。而作为一个适用于解决大规模数据的分布式存储和计算基础架构的技术集合,Apache软件基金会的Hadoop项目自诞生以来就备受瞩目,成为了业界研究和应用的热点,并被誉为“打开大数据之门的金钥匙”。本文的主要研究对象是Hadoop项目中的分布式文件系统HDFS。HDFS作为Hadoop中的基础模块,为诸如MapReduce、HBase等其他上层工具提供基础数据的支撑。而HDFS在应用到大规模分布式项目时,也暴露出了一些架构上的缺陷。HDFS中单个Namenode的架构会影响到系统的可用性,并且会成为整个文件系统性能的瓶颈。本文针对以上缺陷,提出了一种改进的HDFS多Namenode架构,将Namenode水平扩展到集群中的多个节点,Namenode构成一个集群系统,并根据功能划分为Namenode Leader和Common Namenode两种角色;通过心跳机制获取Namenode集群的在线状态和负载信息;在研究了几种分布式一致性策略后,设计了基于Paxos算法的Namenode Leader选举机制;并设计了集群中节点失效的处理流程。对于分布式Namenode架构带来的元数据管理的问题,基于对元数据结构和访问特点的分析,对Namenode所维护的命名空间和元数据服务进行分布,提出了一种基于哈希算法和集群实时负载情况的两级Namenode元数据分布策略;设计了元数据在Namenode集群中的冗余机制;对于元数据在冗余节点上的一致性问题,基于经典的分布式一致性算法Paxos算法,设计了元数据的一致性保障机制。最后,通过实验证明了改进的HDFS架构的高可用性和读写效率。