论文部分内容阅读
随着信息化的高速发展以及移动设备和社交网络的快速普及,互联网的信息量呈爆炸性增长,用户每天以文字、图片、视频等形式产生大量非结构化数据,如何高效地存储和传输这些大规模的数据成为日益关注的问题。许多分布式文件系统应运而生,其中以Google提出的GFS文件系统为代表,这些系统多采用多副本机制来保证数据的可靠性,更加剧了数据存储压力。目前已经有一些工作在探索如何应用数据压缩技术来解决大数据的存储和传输问题,然而这些工作并没有深入研究系统吞吐率与数据、压缩技术特性之间的关系。因引,本文重点研究在Hadoop平台上应用数据压缩技术的三个关键问题:(1)如何对用户透明地(Transparent问题)进行数据压缩,为文件系统提供透明压缩机制?(2)如何能让数据压缩适用于(Adaptive问题)不同的数据类型和应用场景?(3)如何减少数据压缩带来的计算开销(Overhead问题)? 针对上述TAO问题,本文的主要贡献如下: (1)针对T问题,设计并实现了Hadoop透明压缩文件管理系统SwiftFS。SwittFS是一个文件系统适配层,采用装饰(Decorator)模式,在不影响其它文件系统的情况下,以动态、透明的方式给单个文件系统添加压缩功能。SwiftFS将原文件系统中的每个文件分割成多个数据块,对每个数据块单独压缩后写入到原文件系统中,此外,还额外维护一个索引文件以提高随机读取的性能。实验表明,SwiftFS不仅节省了存储空间,而且显著提升了文件系统的读写性能。对于压缩比不超过0.5的数据,在不同的网络环境中,SwiftFS将HDFS的读写吞吐率提升了2-5倍。基于HDFS的数据分析系统均可方便地使用SwiftFS来提升系统的整体性能。 (2)针对A问题,提出了两个可应用于文件系统中的自适应压缩模型:QACM和PACM。QACM模型以排队论为理论基础,利用压缩比R、压缩速度CR和传输速度TR来评估写吞吐率,并给出了最优化写吞吐率的目标函数|CR×R-TR|。根据队列长度来比较数据产生速率和传输速率,从而选择压缩速度更快或更慢的算法。PACM模型采用估计的方法来预测压缩比、压缩速度和传输速度,通过最小化函数| CR×R-TR|的值从多种压缩算法中选择当前最合适的一种,比QACM模型具有更高的准确性。在16组对比测试中,PACM模型10次获得最高吞吐率,而在其它6组中与最高吞吐率的差距不超过10%。 (3)针对O问题,实现了基于硬件压缩卡的压缩器,分析数据表明,硬件压缩卡在压缩数据时,CPU的使用率维持在30%左右,而其它的压缩算法均为100%。为保证容错性,在硬件压缩卡失效后自动使用其实现的压缩算法在CPU完成数据压缩。为能利用硬件压缩卡来降低CPU的负载,在PACM模型中,通过压缩速度CR的估计值来检测CPU的使用情况,在CPU资源紧张时,将部分数据压缩操作转移到硬件压缩卡上。