论文部分内容阅读
由于近年来大数据技术发展迅猛,使得数据量呈井喷式的增长。这对数据的存储与访问技术来说是极具挑战性的难题。为了应对这种情形,许多大数据处理系统应运而生。目前,Hadoop分布式文件系统(HDFS)作为个中翘楚,具有高容错度、高扩展性、高吞吐量和高可靠性的特点,成为了业界和学术界最为流行的分布式文件存储系统。然而,由于本身的架构特点和其特有的读写机制所限,HDFS仅在超大文件的读取和访问上表现良好。在应对海量小文件场景时却有着天然的不足:1)HDFS的主从式的系统架构和以数据块的形式存储文件的存储机制,使得其在存储大量小文件时,会给系统主节点带来巨大的内存消耗,从而降低文件的存储效率;2)频繁的文件访问操作将对元数据管理节点和数据存储节点磁盘造成较大的访问压力,使文件的访问效率降低。在已有的研究当中,解决HDFS平台小文件存取效率问题的主要思路有:对于存储效率的提升,通过采用合并存储的方式,达到减少文件个数的目的,从而缓解主节点的内存压力;对于访问效率的提升,通过为HDFS的架构增设缓存机制,以减少节点间通信时间开销,提升访问效率。本文在前人的研究基础之上,展开了对HDFS中小文件存取效率优化的方法与技术的研究,旨在进一步地提升小文件在HDFS平台中的存储与访问的效率。主要贡献如下:(1)设计并实现了基于文件相关度和文件分布的小文件合并存储策略与机制。首先总结了影响文件合并存储质量的两个因素:文件之间的关联程度和文件合并后的大小分布。通过对海量的文件访问日志进行分析,进而得出文件与文件之间的关联关系,使文件之间的相关程度得以被量化;在对小文件进行合并存储的过程中,通过对量化后的相关度和文件大小分布进行综合考虑并加以权衡,使得合并存储后的小文件有着良好的空间局部性和相对较少的文件个数,从而提升了小文件的存取效率。(2)设计并实现了基于文件驻留价值的小文件缓存分层策略与机制。通过将小文件的大小、访问频次、相关性和时间衰减因素进行综合考虑,定义了当前文件之于缓存的驻留价值,为缓存替换提供了判断依据;通过提出逻辑上的缓存空间的分层机制,并设计了缓存数据项的结构,使缓存替换所带来的时间开销降低,使得文件访问操作得以更高效地执行。(3)为HDFS架构增设服务节点,以实现存储与访问的优化功能。并对优化后的小文件存取功能进行了一系列的性能测评。实验结果表明,经由本文优化后的HDFS系统在小文件的存储和访问两方面的效率均有了明显的提升。