[原][hadoop2.7.1]I/O之压缩

标签: | 发表时间:2015-11-13 21:41 | 作者:s060403072
出处:http://blog.csdn.net/s060403072

先来看下类图(hadoop2.7.1):



对照类图,对每一种压缩算法做个简单介绍:


DeflateCodec(DEFLATE)


hadoop2.7.1中实际上就是DefaultCodec。

它同时使用了LZ77算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法。

人们普遍认为DEFLATE不受任何专利所制约,并且在LZW(GIF文件格式使用)相关的专利失效之前,这种格式除了在ZIP文件格式中得到应用之外也在gzip压缩文件以及PNG图像文件中得到了应用。
DEFLATE压缩与解压的源代码可以在自由、通用的压缩库zlib上找到。
更高压缩率的DEFLATE是7-zip所实现的。AdvanceCOMP也使用这种实现,它可以对gzip、PNG、MNG以及ZIP文件进行压缩从而得到比zlib更小的文件大小。在Ken Silverman的KZIP与PNGOUT中使用了一种更加高效同时要求更多用户输入的DEFLATE程序。


哈夫曼编码(Huffman Coding)


是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种,用于无损数据压缩的熵编码(权编码)。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。


LZ77

LZ77严格意义上来说不是一种算法,而是一种编码理论。同Huffman编码一样,只定义了原理,并没有定义如何实现。基于这种理论来实现的算法才称为LZ77算法,或者人们更愿意称为LZ77变种。实际上这类算法已经有很多了,比如LZSS、LZB、LZH等。
LZ77编码是一种基于字典的、“滑动窗”的无损压缩算法,广泛应用于通信、计算机文件存档等方面。

“字典”的思路相当简单,我们日常生活中就经常在使用这种压缩思想。我们常常跟人说“奥运会”、“IBM”、“TCP”之类的词汇,说者和听者都明白它们指的是“奥林匹克运动会”、“国际商业机器公司”和“传输控制协议”,这实际就是信息的压缩。我们之所以可以顺利使用这种压缩方式而不产生语义上的误解 ,是因为在说者和听者的心中都有一个事先定义好的缩略语字典,我们在对信息进 行压缩(说)和解压缩(听)的过程中都对字典进行了查询操作作。字典压缩模型正是基于这一思路设计实现的。


GzipCodec(gzip)


是以DEFLATE算法为基础扩展出来的一种算法。








作者:s060403072 发表于2015/11/13 13:41:26 原文链接
阅读:13 评论:0 查看评论

相关 [hadoop2 压缩] 推荐:

String压缩 解压缩

- - CSDN博客推荐文章
数据传输时,有时需要将数据压缩和解压缩,本例使用GZIPOutputStream/GZIPInputStream实现. 1、使用ISO-8859-1作为中介编码,可以保证准确还原数据. 2、字符编码确定时,可以在decompress方法最后一句中显式指定编码. * @return 压缩后的字符串. GZIPOutputStream os = null; // 使用默认缓冲区大小创建新的输出流.

Nginx GZip 压缩

- - 开心平淡对待每一天。热爱生活
  Nginx GZip 模块文档详见: http://wiki.nginx.org/HttpGzipModule 常用配置片段如下:. # 压缩比例,比例越大,压缩时间越长. 默认是1 gzip_types. text/css text/javascript; # 哪些文件可以被压缩 gzip_disable.

HDFS-压缩

- - Java - 编程语言 - ITeye博客
文件压缩带来了两大益处1)减少存贮空间2)加速网络(磁盘)传输. 基于大数据的传输,都需要经过压缩处理. 压缩格式 工具 算法 文件扩展名 可分块. Java代码 复制代码 收藏代码. 24.        // io.compression.codecs 定义列表中的一个 . Native gzip 库减少解压缩时间在50%,压缩时间在10%(同java实现的压缩算法).

Doclist压缩方法简介

- flychen50 - 搜索技术博客-淘宝
本文是作者在学习doclist压缩时的一点总结,希望以尽可能简单明了的方式描述各个算法的思想和适用场景,帮助同学们理解和比较. 本文并不涉及具体的算法实现,代码请大家自行google. 这里需要强调的是“所谓的改进顺序”只是作者yy出来方便理解记忆,并不反应真实的压缩方法发展历程. 倒排表的基本组成部分,看例子:.

uglifyjs批量压缩js

- - JavaScript - Web前端 - ITeye博客
jquery官方使用uglifyjs进行压缩的,压缩比较高. uglifyjs的安装方法. . 前端js压缩,使用uglifyjs压缩当前目录里的所有js文件,. 压缩后,会将原文件替换为压缩过的文件.

android图片压缩方法

- - CSDN博客移动开发推荐文章
第一:我们先看下质量压缩方法.         image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中  .         while ( baos.toByteArray().length / 1024>100) {  //循环判断如果压缩后图片是否大于100kb,大于继续压缩         .

[原][hadoop2.7.1]I/O之压缩

- - 海兰
先来看下类图(hadoop2.7.1):. 对照类图,对每一种压缩算法做个简单介绍:. hadoop2.7.1中实际上就是DefaultCodec. 它同时使用了LZ77算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法. 人们普遍认为DEFLATE不受任何专利所制约,并且在LZW(GIF文件格式使用)相关的专利失效之前,这种格式除了在ZIP文件格式中得到应用之外也在gzip压缩文件以及PNG图像文件中得到了应用.

数据是怎么被压缩的

- skyan - 果壳网 guokr.com - 果壳网
回答问题之前先来看看什么是压缩. 当你有天走在路上,碰见熟人对你说:“吃了. ”你一定知道他是在打招呼,既不是要请客也不是让你“没吃赶紧回家吃去”. 这一句简单的“吃了”是礼貌和问好的体现,也是一种信息的压缩. 笼统地说,把一系列已有信息通过一定方法处理,使得其长度缩短,并且信息含量基本或者完全不变,就称之为压缩.

MongoSpy, MongoWatch及MongoDB数据压缩

- gOODiDEA - NoSQLFan
本文源自openmymind博客的一篇文章,文中作者介绍了两个自己用Node.JS写的MongoDB监控小工具,MongoSpy和MongoWatch,然后提出了在对MongoDB进行文本存储时使用压缩以节约空间的设想. 这两上小工具功能并不怎么强大,实现也简单,如果你会用任何一种语言操作MongoDB的话,相信你都能写一个类似的东西.