论文部分内容阅读
随着互联网技术的高速发展及互联网应用的快速增加,使得网络上数据量呈爆炸式增长,大规模数据存储、访问随之成为大数据领域的研究热点。当前,Hadoop分布式文件系统HDFS因高效、稳定的存储能力在大数据领域中被广泛应用。然而,HDFS仍有很多不足之处,需要不断进行改进和完善。首先,HDFS设计时并没有考虑数据节点上磁盘存储异构性,其底层存储只支持单一存储介质,导致HDFS集群不能很好的利用RAM盘(Random-Access Memory Disk)、固态硬盘(Solid State Drives,SSD)等高效存储设备来提高系统的I/O性能和吞吐量。其次,HDFS不能区分热数据,导致存放热数据的节点成为集群性能的一个瓶颈。最后,当HDFS集群存在海量小文件,并且这些小文件中存在大量热数据时,HDFS没有一个很好的缓存策略解决小文件缓存问题,这导致访问小文件时需不断的与硬盘交互,大大降低了客户端频繁访问小文件的效率。为了缓解上述问题,本文研究了HDFS文件副本放置和缓存机制,并进行了针对性的改进。本文主要工作如下:(1)针对HDFS不能高效利用RAM盘和SSD的问题,本文根据数据节点存储异构性,提出了基于热度感知的混合HDFS副本自适应移动策略(HPAMP)。HPAMP在文件副本初始放置时,基于文件大小将副本放置在高效的存储设备(RAM盘、SSD)中;在集群闲暇时,HPAMP采用灰度预测算法预测文件热度,将机械硬盘(Hard Disk Drive,HDD)中热的文件副本移动到RAM盘或SSD中,将RAM盘或SSD中冷的文件副本移动到HDD中。此外,HPAMP中文件副本的移动数量能够根据RAM盘或SSD空间利用率自适应进行调整。实验结果显示,在TeraGen基准测试,HDFS默认策略(DP)、轮询选择策略(RRP)、Tier意识策略(TAP)的运行时间分别是HPAMP的3.4倍,1.89倍和1.68倍;在Sort基准测试中,HPAMP相对DP、RRP和TAP在运行时间上分别能减少46.2%、29.2%和21.3%。(2)针对HDFS海量小文件中存在着大量的热数据,且频繁访问这些热数据效率低下的问题,本文提出了基于ARC替换算法的HDFS小文件缓存管理方法。该方法考虑将这类热文件进行缓存处理,对于缓存替换算法,本文实现了基于Java语言的ARC(Adjustable Replacement Cache)缓存替换算法。ARC算法能准确预测出将会被频繁访问的小文件并将其加入到缓存中,并且通过ARC算法可以动态置换缓存中的数据。缓存管理的实现极大降低了HDFS中热点小文件频繁访问磁盘的次数,提高了集群的访问效率。实验结果显示,与先进先出(FIFO)、最近最少使用(LRU)和最近最不经常使用(LFU)算法相比:在缓存命中率方面,ARC算法最高;在数据访问效率方面,ARC在访问时间上分别降低14.2%、6.1%和3.0%。