论文部分内容阅读
随着信息化在社会中的应用越来越广泛,信息的数据量也越来越大,信息的不断膨胀导致信息的存储越来越重要,如何快速地和高效地对海量信息进行存取成为了人们当前关注和研究的一个重要课题。本文对Google分布式文件系统和Hadoop文件系统进行了研究,仿照GFS设计理念的HDFS文件系统因其良好的扩展性得到了广泛的关注,并且是一个优秀的开源分布式文件系统,但要将其应用在海量分布式文件存储中还需进行一定的优化。本文以HDFS文件系统为对象,深入研究其架构和数据组织方式,以及读写操作的详细流程,参考其它优秀的分布式文件系统的设计,通过引入一些优秀的机制,提高HDFS文件系统的性能,使其能够更好地应用于搜索引擎外的其它领域。首先从架构上对HDFS进行优化,采用轻量级的系统设计,通过小集群有效地减少namenode瓶颈,将namenode部分权限下放到datanode,并通过上层索引系统来管理namenode机器,实现系统的高效访问。为保证数据的容错性,系统还采用双机热备份机制。通过这些架构优化,能有效地满足用户以及业务的快速增长所带来的海量存储问题,使系统的扩展性能更好。然后从性能上对HDFS进行优化,通过采用裸设备能有效地减少工/O次数以及对HDFS块大小进行更改,设置偏移ID统一标识文件的位置,有效地提高文件的读写效率,并更好地支持大小文件的存储,使系统实现对不同类别的海量存储需求如图片、视频、文档、语音的统一存储。本文还对namenode、datanode及客户端分别设计了不同的缓存策略,通过Cache的异步读写,提高应用程序的I/O响应速度,大大提高存储系统的性能。最后,通过分析改进后HDFS的I/0过程及简单的读写操作实验,验证了对于namenode的瓶颈有着良好的改善,并对不同大小的文件有着较好的支持,表现出比原HDFS更优的性能,从而证明了本文的改进方法是有效的。