Hadoop图像压缩

来源:互联网 发布:sony手机知乎 编辑:程序博客网 时间:2024/04/28 17:10

Hadoop图像解压缩

       Hadoop云平台可以完成 对海量图像数据的处理,其主要考虑到压缩速度和压缩图像的可分割性。
       压缩算法主要从时间和速度上进行权衡,更快的压缩和解压缩速度会占用更多的存储空间。Hadoop实现对文件的压缩主要先考虑到文件的可分割性,其次,利用mapduce并行算法实现对文件并行压缩。
        压缩文件的可分割性,例如我们在对HDFS中640M的文本文件进行处理,当前的HDFS数据块的大小为64M时,该文件被分为10块,对应的Mapreduce作业将文件分成10个输入分片,提供10个独立的map任务进行处理。同样在对压缩文件进行分片时,要考虑到Hadoop是否支持对压缩文件的可分割。例如如果该文件是一个gzip的格式的压缩文件(其大小不变),不能进行分割,因为Hadoop不能从gzip的数据流中的某个点开始进行数据的解压,如果是一个zip类型的文件,即可实现对文件的解压,因为Hadoop支持zip压缩文件的分割。

  Hadoop为支持文件分割引入了编码/解码器在 Hadoop的实现中,数据编码器和解码器被抽象成了两个接口:org.apache.hadoop.io.compress.Compressor、org.apache.hadoop.io.compress.Decompressor,所以在Hadoop内部的编码/解码算法实现都需要实现对应的接口。在实际的数据压缩与解压缩过程,Hadoop为用户提供了统一的I/O流处理模式,其过程如下:

从图示中可以看到整个过程分为三部分:
(1).客户端上传大量的数据,通过编码器实现数据的压缩处理;
(2).数据压缩处理后,将压缩的数据上传到HDFS中,进行持久化存储。(注:HDFS中存储一些长时间保存的数据,例如日志文件,海量医学图像数据等)
(3).当客户端检索数据时,同样经过编码器实现对压缩文件的解压缩处理,得到最终的数据信息。




1 0