ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hadoop 数据压缩

2021-10-29 18:33:57  阅读:289  来源: 互联网

标签:MB 压缩 compress Hadoop hadoop Snappy io 数据压缩


文章目录

概述

1)压缩的好处和坏处
压缩的优点:以减少磁盘 IO、减少磁盘存储空间。
压缩的缺点:增加 CPU 开销。

2)压缩原则
(1)运算密集型的 Job,少用压缩
(2)IO 密集型的 Job,多用压缩

MR 支持的压缩编码

1)压缩算法对比介绍

压缩格式Hadoop 自带?算法文件扩展名是否可切片换成压缩格式后,原来的程序是否需要修改
DEFLATE是,直接使用DEFLATE.deflate和文本处理一样,不需要修改
Gzip是,直接使用DEFLATE.gz和文本处理一样,不需要修改
bzip2是,直接使用bzip2.bz2和文本处理一样,不需要修改
LZO否,需要安装LZO.lzo需要建索引,还需要指定输入格式
Snappy是,直接使用Snappy.snappy和文本处理一样,不需要修改

2)压缩性能的比较

压缩算法原始文件大小压缩文件大小压缩速度解压速度
gzip8.3GB1.8GB17.5MB/s58MB/s
bzip28.3GB1.1GB2.4MB/s9.5MB/s
LZO8.3GB2.9GB49.3MB/s74.6MB/s

http://google.github.io/snappy/

Snappy is a compression/decompression library. It does not aim for maximum compression, or compatibility with any other compression library; instead, it aims for very high speeds and reasonable compression. For instance, compared to the fastest mode of zlib, Snappy is an order of magnitude faster for most inputs, but the resulting compressed files are anywhere from 20% to 100% bigger.On a single core of a Core i7 processor in 64-bit mode, Snappy compresses at about 250 MB/sec or more and decompresses at about 500 MB/sec or more.

Snappy是一个压缩/解压库。它不以最大压缩为目标,也不与任何其他压缩库兼容;相反,它的目标是非常高的速度和合理的压缩。例如,与最快的zlib模式相比,对于大多数输入来说,Snappy的速度要快一个数量级,但生成的压缩文件要大20%到100%。在64位模式的酷睿i7处理器的单核上,Snappy压缩速度约为250mb /秒,解压缩速度约为500mb /秒。

压缩方式选择

压缩方式选择时重点考虑:压缩/解压缩速度、压缩率(压缩后存储大小)、压缩后是否可以支持切片。

Gzip 压缩

优点:压缩率比较高;
缺点:不支持 Split;压缩/解压速度一般;

Bzip2 压缩

优点:压缩率高;支持 Split;
缺点:压缩/解压速度慢。

Lzo 压缩

优点:压缩/解压速度比较快;支持 Split;
缺点:压缩率一般;想支持切片需要额外创建索引。

Snappy 压缩

优点:压缩和解压缩速度快;
缺点:不支持 Split;压缩率一般; 4.3.5 压缩位置选择
压缩可以在 MapReduce 作用的任意阶段启用。

在这里插入图片描述

压缩参数配置

1)为了支持多种压缩/解压缩算法,Hadoop 引入了编码/解码器

压缩格式对应的编码/解码器
DEFLATEorg.apache.hadoop.io.compress.DefaultCodec
gziporg.apache.hadoop.io.compress.GzipCodec
bzip2org.apache.hadoop.io.compress.BZip2Codec
LZOcom.hadoop.compression.lzo.LzopCodec
Snappyorg.apache.hadoop.io.compress.SnappyCodec

2)要在 Hadoop 中启用压缩,可以配置如下参数

参数默认值阶段建议
io.compression.codecs (在 core-site.xml 中配置)无,这个需要在命令行输入hadoop checknative 查看输入压缩Hadoop 使用文件扩展名判断是否支持某种编解码器
mapreduce.map.output.compress(在 mapred-site.xml 中配置)falsemapper 输出这个参数设为 true 启用压缩
mapreduce.map.output.compress.codec(在 mapredsite.xml 中配置)org.apache.hadoop.io.compress.DefaultCodecmapper 输出企业多使用 LZO 或 Snappy 编解码器在此阶段压缩数据
mapreduce.output.fileoutputformat.compress(在mapred-site.xml 中配置)falsereducer 输出这个参数设为 true 启用压缩
mapreduce.output.fileoutputformat.compress.codec(在mapred-site.xml 中配置)org.apache.hadoop.io.compress.DefaultCodecreducer 输出使用标准工具或者编解码器,如 gzip 和bzip2

标签:MB,压缩,compress,Hadoop,hadoop,Snappy,io,数据压缩
来源: https://blog.csdn.net/weixin_45417821/article/details/121040217

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有