论文部分内容阅读
现实生活中,互联网逐渐走进了千家万户,随着移动端和PC工具的普及,网络产生的数据量也在随之不断地增加。图片、音频、音乐、文档等诸多数据资源在不断地影响着人们的生活,同时也包含着用户的大量信息。Hadoop计算平台近年来被广泛的用来处理海量的大数据,但是Hadoop分布式文件系统是为处理流式访问大文件提出的,在处理海量小文件上,效率很低,会导致Namenode的内存空间不足和Block内存空间的大量浪费,并且随着小文件数量的增加,小文件的检索速度会受到影响。所以基于HDFS的小文件存储处理是HDFS分布式系统需要解决的难题之一。 为了解决海量小文件在Hadoop平台上的存储问题,本文提出了一种新的小文件存储方法TLB-MapFile和缓存文件置换算法BTCR,优化策略包括以下3部分: 1)在小文件合并模块的优化改进,通过对Hadoop平台的用户访问日志记录进行分析,通过贝叶斯公式获取高频率访问的小文件列表。依据高频率访问的小文件列表对小文件进行合并,解决海量小文件占用大量Namenode内存的问题。 2)在小文件检索模块的优化,在数据节点Datanode上增加TLB块表机制,用来加速定位小文件的存储位置,解决了小文件检索速度过慢的缺陷。 3)在小文件的预取模块上,用户等待时间阈值和小文件读取时间的比率值作为预取小文件的数量限定条件,通过TLB中高频率访问的小文件关系预取小文件,采用BTCR置换算法对TLB和缓存中文件信息进行置换,解决了预取小文件的速度较慢的问题。在TLB表生成的阶段,高频率访问小文件和相关小文件的存储位置索引信息会存储在TLB表中,便于提高检索效率和小文件预取速度。 论文给出了Hadoop下的小文件存储检索优化方法的具体实现,具体包括小文件合并、MapReduce自定义分片的实现、TLB表的构建、预取算法、BTCR置换算法的实现。实验结果表明:在Hadoop平台下通过引用新的小文件内存检索策略TLB-MapFile,可以有效的提高小文件的检索效率、降低Namenode节点的内存消耗和读取小文件的速度。