论文部分内容阅读
随着计算机与信息技术的高速发展,行业应用每天需要处理的数据总量大且增长速度快,为了高效地处理和存储大数据,人们提出了云计算技术和云存储技术。在数据存储方面,我们需要存储的数据量极大,导致耗费的存储资源多,而且数据在网络传输上占用带宽资源大。因此,对于解决存储、带宽等资源耗费问题的有效途径——数据的压缩处理成为人们当前研究的一个重点。对于面向云存储的压缩算法能够增强数据的处理能力以满足大规模数据处理的要求。针对面向云存储的数据压缩算法,本文的主要工作包含如下两个方面:第一部分研究提升压缩算法的数据处理效率和压缩率。首先对BWT变化后的数据进行处理得到其字符编码,并根据字符编码将数据写入小波树节点以位向量形式存储,在此基础上利用统计方法研究不同数据集所对应的位向量中Runs的分布情况,设计出了契合其数据分布特点混合编码压缩结构来压缩存储位向量。再次,根据小波树中位向量中Runs的统计数据设计了计算小整数编码长度的加速表、Runs获取加速表、gamma和delta解码加速表来提升压缩算法的执行速度。其次根据小波树的特点和BWT变换的可逆特性实现数据的恢复算法。最后,结合前面的实现了单处理机上的多线程数据压缩算法。第二部分研究第一部分设计的压缩算法面向云存储的实现,云存储中数据的压缩处理主要借助强大的集群分布式并行处理分块数据,实现对大规模数据的高效处理。本文通过Hadoop平台和MapReduce并行模型来实现基于集群的分布式数据压缩处理。首先,我们通过将单机的压缩算法设计并封装成MapReduce可以直接调用的接口来处理分块数据。然后,制定数据分块策略并使用MapReduce编程模型来实现对数据分块在集群上的并行压缩和解压处理。实验方面工作,一方面,对单机上基于外存的多线程压缩算法的参数信息进行实验调整,并与经典压缩算法在压缩率、压缩和解压时间上做了比较,结果表明本文的压缩算法在压缩时间和压缩率上具有优势,解压时间上略长但稍优于bzip2。另一方面,实现的分布式并行压缩算法在压缩率上略差于单机上的数据压缩算法且在网络IO方面比较耗时,同时与单处理机上压缩算法比较分布式压缩算法可处理数据集规模以及数据压缩处理上具有优势。