论文部分内容阅读
作为GFS的开源实现,Hadoop Distributed File System (HDFS)在大文件的处理上表现突出,然而在处理小文件时却效率低下,主要因为海量小文件非常耗费NameNode节点的内存,从而使得单一的NameNode节点容易成为整个集群的性能瓶颈。此外,HDFS采用静态三副本策略,以机架感知的方式确定副本的存放位置。这一策略虽然可以部分实现容错和负载均衡,但缺陷也非常明显,策略过于僵化,不仅造成较大的存储资源浪费,而且负载均衡效果也不理想。针对HDFS处理小文件时存在的不足,本文提出了基于索引机制的小文件处理优化方案,核心思想是通过DataNode部分替代NameNode的作用,以分散小文件处理的压力,解决HDFS在大量请求下的单NameNode瓶颈问题,同时引入缓存策略,进一步优化文件读取效率。此外,为了实现均衡存储,本文提出了DataNode节点综合量化指标,并在此基础上提出了动态副本策略,实现了动态副本放置算法。归纳整个研究过程,本文主要取得了以下几点创新成果:1、针对HDFS处理小文件效率低下的问题,本文提出了更为通用的基于索引机制的小文件处理优化方案,实现了小文件的分布式处理,降低了NameNode节点的瓶颈效应,提升了小文件的处理效率;2、在索引方案基础上,本文将缓存策略引入文件读取过程中,实现了分布式独立缓存,优化了HDFS的I/O操作,提高了HDFS文件读取速度;3、针对HDFS原有的静态三副本策略导致存储效率低,存储分布不均衡的问题,本文提出了新的动态副本策略,通过多项指标综合量化DataNode节点的性能,实现了动态副本放置算法,提高了集群的均衡性和存储效率。在测试集群上的实验结果表明,无论是基于索引机制的小文件优化方案,还是动态副本策略,相对原始的HDFS系统,在性能上均有了较大改善,相对已有优化方案也有较明显的优势。