论文部分内容阅读
大数据技术随着互联网的发展及信息量爆炸增长的趋势应运而生。面对异常庞大的数据,多种分布式文件系统为大数据的存储提供了解决方案。其中Hadoop由于自身高扩展性、高可靠性等优点被业界广泛使用。HDFS作为Hadoop的核心组件,为处理大数据提供了文件存储服务。然而HDFS更擅长处理流式的大文件,面对海量小文件存储时的表现不佳。本文为了解决HDFS存储小文件效率低下的问题,对Hadoop架构和HDFS存储文件的流程进行详细分析,提出了引入多级处理模块MPM(Multilevel Processing Module for Small Files)的方案。该方案首先通过文件预处理模块,对系统中发出操作请求的文件进行过滤,筛选4.35MB以下的文件为小文件,并将其按文件扩展名进行初步分类。随后文件合并模块会将预处理后的小文件合并成尽可能少的大文件,以减少系统NameNode内存负载。为了提高小文件的查询速度,方案中除了利用小文件创建时间和小文件扩展名建立的二级索引模块,还引入了基于用户常用文件的预取和缓存模块。最后,针对系统长时间运行导致的碎片问题,当系统满足设定条件时,碎片整理模块会对合并文件的空白空间进行清理,以提高系统空间的利用率。本文将提出的MPM方案与三种HDFS现有存储方案:原生存储方案、HAR文件归档方案、Sequence File方案进行实验对比。当存取数量为100000的文件时,MPM方案可为系统节省95.56%的内存占用,空间利用率高达99.92%。同等条件下,与原生存储方案相比,MPM方案的写入速率是未优化前的两倍;由于合并机制步骤更多,写入耗时只降低了31%。读取速率提升了2.25倍左右,读取耗时是所有方案中最低的。实验结果表明,MPM方案对HDFS的存储性能改善明显。大幅减少了系统中的文件数量,有效降低NameNode内存负载,提高了系统内存利用率,实现了高速率的小文件读写性能。