美文网首页
大数据中的压缩

大数据中的压缩

作者: 喵星人ZC | 来源:发表于2019-04-16 21:19 被阅读0次

一、压缩分类
1、Lossless conpression(无损压缩)
压缩和解压缩过程中没有任何数据的丢失

2、Lossy conpression(有损压缩)
JPEG,MP3,MPEG 压缩和解压缩过程中有任何数据的丢失

二、压缩场景
输入

中间

输出

三、压缩注意事项
CPU是否够用,压缩加压缩都耗费资源

四、压缩格式

Compression format Tool File extention
gzip gzip .gz
bzip2 bzip2 .bz2
LZO lzop .lzo
Snappy N/A .snappy

五、压缩比

image

原始文件大小1.4G
Snappy的压缩比:50%
LZ4的压缩比:49%
LZO的压缩比:48%
GZIP的压缩比:32%
BZIP2的压缩比:28%

六、总结
1、压缩比越高压缩时间就越长,不同压缩场景需要选用不同的压缩。
2、选用压缩就是空间与时间的选择
3、如果是老数据/冷数据就采用BZIP2压缩,如果老数据偶尔还会用的到还需考虑是否分片
4、\color{red}{BZIP2支持分片,LZO需要创建索引才能支持分片,}

七、Hadoop配置Mapreduce的压缩
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>

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>

上面配置的是Bzip2的压缩,进入

$HADOOP_HOME/share/hadoop/mapreduce

j进行wordcount的测试

hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar wordcount /data/wc.txt /data/wc_bzip

查看结果文件是带有bz2后缀的

[root@hadoop001 data]# hadoop fs -ls /data/wc_bzip
Found 2 items
-rw-r--r--   1 root supergroup          0 2017-12-27 11:28 /data/wc_bzip/_SUCCESS
-rw-r--r--   1 root supergroup         74 2017-12-27 11:28 /data/wc_bzip/part-r-00000.bz2
[root@hadoop001 data]# hadoop fs -text /data/wc_bzip/part-r-00000.bz2
17/12/27 11:29:45 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
17/12/27 11:29:45 INFO compress.CodecPool: Got brand-new decompressor [.bz2]
Hello   3
Hive    1
Spark   3
World   1
hive    1

八、Hive的压缩测试
1、创建表

create table page_views(
track_time string,
url string,
session_id string,
referer string,
ip string,
end_user_id string,
city_id string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

2、加载数据

load data local inpath '/opt/data/page_views.dat' overwrite into table page_views;

查看原表的大小

hadoop fs -du -h /user/hive/warehouse/page_views
18.1 M  18.1 M  /user/hive/warehouse/page_views/page_views.dat

3、\color{red}{BZIP2压缩}

SET hive.exec.compress.output=true;
SET mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.BZip2Codec;

新建表

create table page_views_bzip2 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
AS SELECT * FROM page_views;

查看新表的大小

hadoop fs -du -h /user/hive/warehouse/page_views_bzip2
3.6 M  3.6 M  /user/hive/warehouse/page_views_bzip2/000000_0.bz2

4、\color{red}{GZIP压缩}

SET hive.exec.compress.output=true;
SET mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.GzipCodec

新建表

create table page_views_gzip 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
AS SELECT * FROM page_views;

查看大小

hadoop fs -du -h /user/hive/warehouse/page_views_gzip
5.3 M  5.3 M  /user/hive/warehouse/page_views_gzip/000000_0.gz

5、\color{red}{Snappy压缩}

SET hive.exec.compress.output=true;
SET mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec

新建表

create table page_views_snappy
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
AS SELECT * FROM page_views;

查看大小

hadoop fs -du -h /user/hive/warehouse/page_views_snappy
8.4 M  8.4 M  /user/hive/warehouse/page_views_snappy/000000_0.snappy

以上为临时生效压缩,真正使用需要将具体使用哪种压缩配置到Hive配置文件

相关文章

  • 音视频理论:离散余弦变换-DCT

    离散余弦变换在压缩的时候中的应用 多媒体数据的显著特点就是数据量非常大,解决方案就是进行数据压缩,压缩后进行存储和...

  • 数字图像处理-图像压缩

    图像压缩介绍 概念 图像压缩是图像编码的一种典型用途。数据压缩的对象是数据,大的数据量并不代表含有大的信息量。图像...

  • 数仓--Hive-面试之Hive支持的文件格式和压缩格式及各自特

    Hive中的文件格式 1-TEXTFILE 文本格式,Hive的默认格式,数据不压缩,磁盘开销大、数据解析开销大。...

  • 大数据中的压缩

    一、压缩分类1、Lossless conpression(无损压缩)压缩和解压缩过程中没有任何数据的丢失 2、Lo...

  • 多媒体知识点整理(4)

    无损压缩&&有损压缩 压缩的分类 无损压缩:使用压缩后的数据进行重构,重构后的数据与原来的数据完全相同。 有损压缩...

  • 《算法》-字符串[数据压缩]

    1、为什么要做数据压缩? 2、什么是数据压缩? 3、常见的数据压缩算法 LZW压缩 LZW压缩是一种无损压缩,应用...

  • Apache站点优化-数据压缩

    数据压缩 数据压缩介绍 数据压缩实现 压缩工具比较 一、数据压缩介绍 数据从服务器传输到客户端,需要传输时间,文件...

  • 数据库压缩技术

    为什么需要压缩 在面向磁盘的数据库,从磁盘中取数据是最大的性能瓶颈。而在内存数据库中,在速度与压缩率的取舍中总是会...

  • HADOOP-HIVE4

    Hive压缩 开启Map输出阶段压缩 开启map输出阶段压缩可以减少job中map和Reduce task间数据传...

  • linux/unix之压缩文件

    gzip压缩数据 单个压缩 gzip test.log 批量压缩 gzip test* 归档数据 tar命令 压缩...

网友评论

      本文标题:大数据中的压缩

      本文链接:https://www.haomeiwen.com/subject/loiiwqtx.html