论文部分内容阅读
随着大数据技术的兴起,用户访问互联网所产生的数据正在呈指数级增长,这些数据大部分以小文件最多。传统的存储技术对于处理海量小文件的性能已经大幅度下降,而Hadoop分布式架构为处理海量数据提供了很好的解决方案。Hadoop本身在处理大型文件方面表现出高性能,但是随着小文件数量的增加,Hadoop内存中的NameNode元数据块存储空间消耗过大,在访问文件性能上有所降低。因此本文设计了一种高效的解决Hadoop在小文件存储优化方面的方案,这也是本文所要研究的重要方向。针对Hadoop中小文件存储效率低下的问题,本文设计了一种关联文件合并算法以及文件缓存算法。在关联文件合并算法中,在小文件预处理模块上设计一种文本挖掘模型算法,即基于TF-IDF特征提取和加权余弦相似度的K-最近邻算法,该算法首先通过对英文文本集进行单词的词干提取、分词等操作,找到待分类的训练文件与K个邻居的测试文件所属的类别;然后通过实验测试在众多训练文件集中找到与待分类文件最相似的K个邻居,并对其进行聚类实现;最终得到分类后的测试文件集,对分类后的文件集进行合并。合并算法中将小文件以<key,value>键值对的形式进行存储,通过读取文件路径名及文件内容,对其合并上传到HDFS内存空间中。文件缓存算法是通过改进LRU和LFU算法的不足,提出一种LRU-K文件缓存淘汰算法,该算法关键点在于通过设置用户访问小文件的时间戳以及文件访问频率,将不常用的文件进行淘汰,提高常用文件的缓存性能,进一步增加用户读取文件的访问命中率。为验证算法可行性,本文在搭建好的Hadoop集群上进行多次实验,与原始的HDFS文件存储方案和HAR归档方案进行比较,测试在NameNode内存占用率以及写文件耗时方面的性能。实验结果证明,本文设计的小文件优化存取方案能够有效地降低HDFS中NameNode的内存占用消耗,并有效地缩短了用户读写小文件的时间耗时,也进一步验证了本文提出的方案可行性。