论文部分内容阅读
随着经济、社会和科技的发展,个人电脑、智能手机等设备大规模普及,互联网应用越来越广泛和深入,人们进入了大数据的时代。云计算、大数据、云存储共同组成了学术界和商业界研究的前沿课题。Hadoop是目前主流的开源大数据平台,已经成为处理大数据问题事实上的标准,它涵盖一个能够实现云计算、云存储功能的生态系统;其中HDFS作为Hadoop最底层的基础设施,为其提供了高可靠性、高可扩展性的数据存储管理服务,HDFS的工作效率直接决定了Hadoop其他上层工具的性能,也极大地影响了基于HDFS的应用系统的工作效率。HDFS尽管具有很多优点,但是依旧处于不断发展成熟的过程中,特别是当处理大规模数据集时会出现很多问题,具体表现在NameNode节点单点失效、NameNode节点内存瓶颈和负载过大、大量文件访问时DataNode节点磁盘I/O寻址频繁、HDFS集群后台管理工作负载过大等等,这些都极大地制约了HDFS作为一个分布式文件存储系统的应用。为此,本文在对]HDFS进行详细介绍和相关性能因素分析的基础上,从访问性能和系统架构两方面对HDFS进行了优化,进一步提高HDFS的工作效率。本文的主要工作及创新点如下:1,在研读HDFS系统源代码的基础上,介绍了HDFS典型操作流程和后台管理工作,剖析了HDFS中元数据架构体系和通信机制,讨论了HDFS系统在批量文件处理时面临的一些问题和缺陷。2,针对批量文件存储时存在的问题,重构了批量文件存储的机制和读写流程。在写入批量用户文件时,Client客户端将批量文件合并成一个组文件,并且创建用户文件、数据片段、组文件、数据块之间的映射元数据,然后将组文件和相关元数据都存储到HDFS中;在读取批量用户文件时,Client客户端首先获取用户文件的元数据,其次按照存储位置对数据片段进行分类,然后按类向DataNode发出数据读取请求,获得所有数据片断,最后将数据片段组装成用户所求的文件。3,在批量文件存储优化的基础上,提出了将NameNode节点中容易分离的元数据迁移存储到Redis服务器节点的方法,实现“元数据分布,访问分布”,以此来进一步降低NameNode节点的内存消耗和访问负载。4,对于以上的优化方案,在HDFS开源系统上做了编程实现,并进行了实验测试,实验结果验证了优化策略的有效性。