Compression压缩

简介: 压缩所带来的好处,磁盘、IO,都来带来很多好处,同时也有很多的弊端。 生产环境经常用的集中压缩  gzip  、 bzip2 、LZO、Snappy Bzip2 压缩比30%   ---支持分割 gzip 压缩比40% LZO Snappy 压缩比50%  --LZO支持分割,前提是有索引 hadoop中压缩的配置使用 core-site.

压缩所带来的好处,磁盘、IO,都来带来很多好处,同时也有很多的弊端。

查看自己的hadoop机器是否支持压缩命令     ./hadoop checknatice

如果压缩格式后面全是false,说明Hadoop是没有编译过的。

生产环境经常用的集中压缩  gzip  、 bzip2 、LZO、Snappy

先来看下他们之间的区别,主要体现在压缩比率、压缩与解压速度、是否支持分割等方面


Format            extention      压缩比到     是否支持分割

 Gzip                     .gz            40%          NO

 Bzip2                   .bz2           30%          yes

 LZO                     .lzo            50%          yes if indexed(前提是有索引)

 Snappy                    .snappy       50%            NO


而对于我们刚刚说的速度问题,压缩比越高,压缩速度就越慢,成反比,这里就不在列图了。

下面来看下为什么要看是否支持分割呢,我们知道不管是mapreduce还是spark都会有map和reduce还有shuffer的过程,

假如一个1G的文件使用Gzip压缩后,大概是400M左右,执行mapreduce任务时,只有会生成一个task,因为不支持分割。

假如一个1G的文件使用Bzip压缩后,大概是300M左右,执行mapreduce任务时,会按照128M生成3个task,因为支持分割,

就是说压缩后,所有不支持分片的,都只能由一个task去执行。

所以在选择压缩比、压缩时间、是否分割等方面,都要做到权衡。


下面来看下压缩在hadoop的中是用,通过配置就可以了


hadoop中压缩的配置使用

core-site.xml

<property>

    <name>io.compression.codecs</name>

<value>

org.apache.hadoop.io.compress.GzipCodec,

org.apache.hadoop.io.compress.DefaultCodec,

org.apache.hadoop.io.compress.BZip2Codec,

</value>

</property>




MapReduce中mapred-site.xml

<property>

<name>mapreduce.output.fileoutputformat.compress</name>

<value>true</value>

</property>


<property>

<name>mapreduce.output.fileoutputformat.compress.codec</name>

<value>org.apache.hadoop.io.compress.BZip2Codec</value>

</property>



相关文章
|
2月前
开始压缩
【9月更文挑战第05天】
18 2
|
6月前
|
存储 算法 Linux
Gzip的压缩级别
【4月更文挑战第29天】压缩级别
398 1
|
6月前
|
存储 算法 Linux
Gzip的压缩级别有哪些选择?
【4月更文挑战第29天】Gzip的压缩级别有哪些选择?
286 1
|
存储 算法
路径压缩 (Path Compression)
路径压缩 (Path Compression) 是一种用于求解最短路径问题的算法,通常用于 Dijkstra 算法中,可以加速求解最短路径问题。 路径压缩通过将已经确定的最短路径信息传递给未确定最短路径的节点,来加速最短路径的计算。具体来说,当一个节点的最短路径已经确定时,它会将这个信息传递给所有它的邻居节点,这样邻居节点就可以跳过一些不必要的计算,直接使用已经确定的最短路径信息,从而加速整个最短路径的计算过程。
335 3
|
算法 Python
路径紧缩(Path Compression
路径紧缩(Path Compression)是用于优化Dijkstra算法的一种算法技巧,目的是减少搜索树中的路径数量,从而提高算法效率。在加权有向图中,路径紧缩可以有效地减少最短路径树的节点数量,使算法更快地找到最短路径。 路径紧缩的基本思想是:当发现一条路径比已有的最短路径更短时,将这条路径与原有路径进行合并,而不是将原有路径替换。这样,在搜索过程中,可以有效地减少树的节点数量,从而提高搜索速度。
71 3
|
存储 编解码 算法
什么是压缩算法及压缩算法定义
什么是压缩算法及压缩算法定义
197 0
|
存储 算法
Quicklz压缩算法
以前对压缩算法一无所知,只是知道哈弗曼编码能做这种事情,但是感觉这样的方法奇慢无比。昨天下午看了下号称世界上最快的压缩算法Quicklz,对压缩的基本思路有了一定的了解。一般的压缩程序的要求读入文件之后以便压缩一边输出,而不是去先分析整个文件中的情况之后才做决定采取哪种算法。
1541 0
成功解决RuntimeError: Decompression ‘SNAPPY‘ not available. Options: [‘GZIP‘, ‘UNCOMPRESSED‘]
成功解决RuntimeError: Decompression ‘SNAPPY‘ not available. Options: [‘GZIP‘, ‘UNCOMPRESSED‘]
|
API Android开发