论文部分内容阅读
随着互联网的迅速发展以及移动信息时代的到来,信息化正在潜移默化的改变着人们的生活,然而在改变人们生活的同时,各种信息化产物也在不断的产生海量的数据信息文件,因此也给数据的存储带来了巨大的挑战。Hadoop的出现给数据总量日益增加的海量数据带来了希望,Hadoop因其低成本性、容错性、可靠性以及灵活性等显著优势而迅速在各个领域内被广泛的使用。Hadoop最初是为存储大大文件而设计,文件的读取与存储均通过的流的方式,然而在当今大数据时代,每天产生的数据总量中小文件占据主体部分,其中大多为一些KB级别的图片、短消息、日志文件等等。将Hadoop应用于存储数量巨大的小文件时,将会出现影响Hadoop中文件读取与存储性能等方面的因素。因此研究如何解决当前Hadoop中的HDFS在存储海量小文件时出现的性能低下问题是一个非常热门的研究方向。 针对如上出现的问题,本文给出了一种基于HBase的海量小文件合并存储的优化方案,本方案主要包括以下三个部分: (1)在小文件上传到HDFS之前首先对其执行合并操作,通过只上传一个合并大文件的方式而替代分别上传合并大文件中每个小文件,多个小文件的元数据被一个合并大文件的元数据取代,有效的降低了元数据对NameNode内存的占用。 (2)为了能够定位并读取到合并大文件中的具体小文件,在文件合并的过程中同时创建小文件与大文件之间的映射关系,在将合并文件上传到HDFS的同时也将索引文件保存到HBase数据表。 (3)通过分析HDFS的审计日志创建了文件元数据预取机制,降低了HDFS中文件读取过程所用的时间,提高了文件的读取效率。 本方案通过将上述三个部分紧密结合起来,并且将方案的应用范围扩大到可以适用于同时存储小文件与大文件的HDFS。通过实验证明,本改进方案在降低海量文件元数据对NameNode内存的消耗以及提升HDFS中小文件的读取速度均表现出显著的优势,除此之外,在文件写入性能上本方案较原始HDFS也表现出了较高的性能优势。