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>



相关文章
|
5月前
|
存储 算法
路径压缩 (Path Compression)
路径压缩 (Path Compression) 是一种用于求解最短路径问题的算法,通常用于 Dijkstra 算法中,可以加速求解最短路径问题。 路径压缩通过将已经确定的最短路径信息传递给未确定最短路径的节点,来加速最短路径的计算。具体来说,当一个节点的最短路径已经确定时,它会将这个信息传递给所有它的邻居节点,这样邻居节点就可以跳过一些不必要的计算,直接使用已经确定的最短路径信息,从而加速整个最短路径的计算过程。
135 3
|
5月前
|
算法 Python
路径紧缩(Path Compression
路径紧缩(Path Compression)是用于优化Dijkstra算法的一种算法技巧,目的是减少搜索树中的路径数量,从而提高算法效率。在加权有向图中,路径紧缩可以有效地减少最短路径树的节点数量,使算法更快地找到最短路径。 路径紧缩的基本思想是:当发现一条路径比已有的最短路径更短时,将这条路径与原有路径进行合并,而不是将原有路径替换。这样,在搜索过程中,可以有效地减少树的节点数量,从而提高搜索速度。
36 3
|
11月前
|
存储 编解码 算法
什么是压缩算法及压缩算法定义
什么是压缩算法及压缩算法定义
119 0
成功解决RuntimeError: Decompression ‘SNAPPY‘ not available. Options: [‘GZIP‘, ‘UNCOMPRESSED‘]
成功解决RuntimeError: Decompression ‘SNAPPY‘ not available. Options: [‘GZIP‘, ‘UNCOMPRESSED‘]
|
API Android开发
|
存储 算法
Quicklz压缩算法
以前对压缩算法一无所知,只是知道哈弗曼编码能做这种事情,但是感觉这样的方法奇慢无比。昨天下午看了下号称世界上最快的压缩算法Quicklz,对压缩的基本思路有了一定的了解。一般的压缩程序的要求读入文件之后以便压缩一边输出,而不是去先分析整个文件中的情况之后才做决定采取哪种算法。
1443 0
|
监控 算法 Cloud Native
开发函数计算的正确姿势——使用 brotli 压缩大文件
函数计算对上传的 zip 代码包尺寸限制为 50M。某些场景中代码包中会超过这一限制,比如未经裁剪的 serverless-chrome,类似的还有 libreoffice ,此外常见的还有机器学习训练的模型文件。本文会比较几种常见的解决大文件的方案,并重点介绍借助 brotli 提高压缩比的方法。
开发函数计算的正确姿势——使用 brotli 压缩大文件
|
JavaScript 前端开发 Apache
apache开启 gzip 压缩
apache开启 gzip 压缩 这里我使用的是Apache2.4.17 打开apache安装目录,找到conf目录,用记事本打开httpd.conf 文件。 ctrl+f 查找 去掉 #LoadModule headers_module modules/mod_headers.
2142 0