论文部分内容阅读
当前网络信息技术与云计算技术迅猛发展,互联网内容由网站管理人员主导逐渐过渡为用户主导,这种变化使得人们可以随时随地通过互联网服务获取或者生成海量的数据,如何有效地管理这些个人或公共数据已成为当务之急。传统的存储架构在当前互联网数据存储场景中表现较差,且其扩展性差、数据安全性低、维护与管理成本高、灾备能力差等缺陷日益明显。将个人数据集中存储至云服务中统一管理的分布式云存储系统受到IT界的广泛关注,用户无需在本地持有大量的存储空间,只需要通过智能设备就能够便捷地获取到云端数据。这种分布式的云存取结构可以很好地解决上述问题,并且满足大规模用户并发访问的需求。Hadoop是一个可部署在廉价设备上的分布式开源平台,其核心之一的HDFS作为一种新型的云存储平台,能够很好地解决爆炸性数据的存储与管理难题。本文主要针对海量小文件读写这一场景,对分布式文件系统HDFS进行了详细分析,并关于HDFS存在的小文件问题、节点选择问题和读取缓存问题,提出了基于Redis集群的HDFS改进方案RCHDFS。首先,从基本系统组成与工作原理方面对GFS、MooseFS、HDFS等典型的分布式存储系统进行研究,分析HDFS系统的主要组件与依赖关系,深入研究了NameNode、DataNode、DFSClient的工作原理及对应源码实现。然后,通过对大量中外文献的分析与相关技术的研究,针对HDFS的固有问题,分析了已有的解决方案,随后提出了改进方案,分为3个部分。一是提出了在DataNode节点中部署Redis集群服务的方法,使得Redis服务可以承担大部分NameNode的管理任务,集群的内存使用可以均匀地分布在不同的DataNode节点上,缓解NameNode的内存消耗和NameNode并发压力;二是提出了基于节点处理能力和数据块在节点中分布均衡性的最优读写节点选择方法,优化了HDFS机架感知策略,既保证了数据块的均衡,又降低了文件读写时延;三是提出了基于混合缓存的中小文件读取方法,在Redis中缓存热点小文件,在Client端缓存中等文件元信息,进一步提升了海量文件的访问速度。最后,针对提出的RCHDFS与HDFS方案进行了测试对比。测试结果表明,本文提出的方案可以明显地降低海量小文件元数据信息的内存消耗,在并发性大量文件读写操作时可以有效地降低时间消耗,并且保证了所有块和文件元信息在节点中分布均衡。