zoukankan      html  css  js  c++  java
  • 大数据学习之编程案例压缩解压操作 15

    三:压缩与解压

    1Hadoop数据压缩

    MR操作过程中进行大量数据传输。

    压缩技术能够有效的减少底层存储(HDFS)读写字节数。

    压缩提高了网络带宽和磁盘空间的效率。

    数据压缩能够邮箱的节省资源!

    压缩是mr程序的优化策略!

    通过压缩编码对mapper或者reducer数据传输进行数据的压缩,以减少磁盘IO。

    2压缩的基本原则

    1)运算密集型任务少用压缩

    2)IO密集型的任务,多用压缩

    3MR支持的压缩编码

    压缩格式 | hadoop是否自带? |文件拓展名 | 是否可以切分

    DEFAULT  | 是 | .deflate | 否

    Gzip  | 是  | .gz  | 否

    bzip2  | 是  | .bz2  | 是

    LZO  | 否  | .lzo  | 是

    Snappy  | 否 | .snappy | 否

    4编码/解码器

    DEFAULT|org.apache.hadoop.io.compress.DefaultCodeC

    Gzip  |org.apache.hadoop.io.compress.GzipCodeC

    bzip2  |org.apache.hadoop.io.compress.BZip2CodeC

    LZO  |com.hadoop.compression.lzo.LzoCodeC

    Snappy  |org.apache.hadoop.io.compress.SnappyCodeC

    5压缩性能

    压缩算法 | 原始文件大小 | 压缩文件大小| 压缩速度| 解压速度

    gzip | 8.3GB |1.8GB|17,5MB/s|58MB/s

    bzip2| 8.3GB |1.1GB|2.4MB/s |9.5MB/s

    LZO | 8.3gb |2.9GB|49.3MB/s|74.6MB/s

    6使用方式

    map端输出压缩

    //开启map端的输出压缩

    conf.setBoolean("mapreduce.map.output.compress", true);

    //设置压缩方式

    //conf.setClass("mapreduce.map.output.compress.codec", DefaultCodec.c

    lass, CompressionCodec.class);

    conf.setClass("mapreduce.map.output.compress.codec",

    BZip2Codec.class, CompressionCodec.class);

     

    reduce端输出压缩

    //开启reduce端的输出压缩

    FileOutputFormat.setCompressOutput(job, true);

    //设置压缩方式

    //FileOutputFormat.setOutputCompressorClass(job, DefaultCodec.class);

    //FileOutputFormat.setOutputCompressorClass(job, BZip2Codec.class);

    FileOutputFormat.setOutputCompressorClass(job, GzipCodec.class);

     

    运行结果:

  • 相关阅读:
    hdu 1086 You can Solve a Geometry Problem too 求n条直线交点的个数
    2019 上半年 南昌网络赛
    第十章 存储过程和函数
    第九章 Mysql函数
    第八章 Mysql运算符
    第七章 插入、更新与删除数据
    第六章 查询数据
    第五章 触发器
    第四章 视图
    第三章 索引
  • 原文地址:https://www.cnblogs.com/hidamowang/p/10865279.html
Copyright © 2011-2022 走看看