论文部分内容阅读
近些年随着互联网的高速发展,接入互联网的用户越来越多,各种互联网相关的服务也已经深入到整个社会的各个方面,小到个人吃饭打车,大到影响全国人民的火车订票视频观看等系统,无时无刻影响着我们的生活。在可预见的未来,互联网将会继续发展,而由此产生的数据将会变得越来越庞大,对于这些数据的处理以及有价值的信息处理会变得很重要。而HDFS不管是作为云计算MapReduce的基本存储系统还是单纯作为海量大数据存储平台,在现在的社会中都发挥着愈发重要的作用。作为一个被广泛使用的大规模分布式文件系统,他能够在高可用性以及高可靠性的前提下高效地进行数据存储及访问就会变得非常重要。本文针对这样一个问题,对HDFS的NameNode以及DataNode进行了仔细的研究,并阐述了现在版本中HDFS的一些局限性,并提出了相关的优化方案。本文主要工作如下:(1)介绍云计算的一些相关知识,并对Hadoop进行了相关介绍,主要是对HDFS的Namenode工作原理以及DataNode的读写过程进行了详细介绍,另外对MapReduce计算流程也进行了简单介绍。(2)对HDFS的高可用性进行了介绍,并对早期版本的HDFS高可用性解决方案进行了介绍以及分析对比,由此引出了Hadoop 2.x新加入的新特性,HA(High Availability高可用性)机制。对HDFS HA进行了详细的分析,并提出了新的可更有利于扩展性的方案,并对优化方案的元数据一致性以及主备切换进行了分析。在设计的实验里,对优化后的元数据一致性保证得到了验证。而在双节点故障的情况下,优化后的方案大大减少了主备Namenode节点切换的时间,优化效果明显。(3)对HDFS中文件读写进行了了解与分析。由于磁盘的读写会是文件读写的瓶颈所在,故本文提出了一个基于缓存的优化设计。在这个设计方案中,我们将用Memcached来实现这个缓存层,对于DataNode上的文件读写首先会经过Memcached缓存中间层,以达到读写性能的提升。最后,分别对这个方案进行了一系列的读写测试和MapReduce的基准测试,测试结果表明了这个方案对读写以及MapReduce都有一定的性能提升。