压缩在大数据中的使用

1、为什么要使用压缩
单机:磁盘空间的限制
Hadoop/HDFS:DN是用来存储数据用的 药对HDFS上的数据进行压缩,减少
存储在HDFS上数据所占用的空间
1T ==》假如压完 300G
3T ==>就是 900G

INPUT==>MR==>OUTPUT

好处:
减少HDFS读写数据量
提升网络传输效率

2、压缩的使用场景
input 数据的进入------》xxxx处理------->output
比如离线的:
MR/Spark/Flink:HDFS(有界)----〉MR----》HDFS

实时的:
Spark/Strom/Flink:无界—〉stream—》Kafka/Nosql—>RDBMS

input:HDFS 数据输入----〉分布式处理引擎:MR map作为中间状态他输出—》输出在输出到HDFS

MR在压缩过程中不需要手工进行处理,但是MR在进行数据处理时肯定是需要一个动作来进行处理数据的压缩和解压的这个在底层自己实现。

3、压缩使用的注意事项
注意事项:带来好处的同时,势必还有一个反面的意义存在
压缩:原始数据----》压缩的技术手段—〉变成目标数据
提示:输入和输出的内容是“一样的”,但是提及是不一样的!
解压缩:原始数据—》解压说技术手段—〉目标数据
技术:就是算法
反面:在处理压缩以及解压的过程中,是有资源CPU的消耗
注意事项:在使用压缩时候一定要确定你的服务器CPU的资源使用率是够的

4、常见的压缩格式
GZIP\BZIP2\LZO\SNAPPY
压缩比:原始数据大小和压缩后的数据大小的百分比
1G 压缩完是 200M 500M 700M那
速度:压缩和解压缩过程中所耗费的时间比

5、Codec详解
压缩的解码和编码器,针对不同格式的压缩进行处理

6、压缩编程实战
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
7、解压缩编程实战
在这里插入图片描述
8、压缩和解压缩在Hadoop源码中的体现
在这里插入图片描述
9、Hadoop整合压缩使用之代码设置

map

mapreduce.map.output.compress
false
Should the outputs of the maps be compressed before being
sent across the network. Uses SequenceFile compression.

mapreduce.map.output.compress.codec org.apache.hadoop.io.compress.DefaultCodec If the map outputs are compressed, how should they be compressed?

reducer

mapreduce.output.fileoutputformat.compress false Should the job outputs be compressed? mapreduce.output.fileoutputformat.compress.type RECORD If the job outputs are to compressed as SequenceFiles, how should they be compressed? Should be one of NONE, RECORD or BLOCK. mapreduce.output.fileoutputformat.compress.codec org.apache.hadoop.io.compress.DefaultCodec If the job outputs are compressed, how should they be compressed?

在这里插入图片描述
10、Hadoop整合压缩使用之配置文件设置
文件1、core-site.xml
在这里插入图片描述

io.compression.codecs
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.SnappyCodec

文件2、mapred-site.xml文件
在这里插入图片描述
codec这个压缩格式看个人可以换的
mapreduce.map.output.compress=true
mapreduce.map.out.compree.codec=org.apache.hadoop.io.compress.BZip2Codec

mapreduce.output.fileoutputformat.compress=true
mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.GzipCodec

配置完后一定要重启HDFS/mapreduces

测试:hadoop jar example…jar wordcount /input/wc.input /output/
查看:Hadoop fs -text /output/part*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值