hadoop之初识mapreduce(大数据之-Hadoop3.xMapReduce数据压缩)
hadoop之初识mapreduce(大数据之-Hadoop3.xMapReduce数据压缩)数据量小了 网络传输效率高了MapReduce中为什么要用压缩 因为压缩以后可以看到压缩以后变小了
先来了解一下压缩 其实就是我们日常用的压缩
可以看到有压缩方式 压缩格式
可以看到压缩以后变小了
MapReduce中为什么要用压缩 因为压缩以后
数据量小了 网络传输效率高了
如果我们有100G 压缩以后变成10G那么再传输的时候 耗费Io就少很多 时间也少很多
但是压缩就一定好吗?
可以看到压缩的数据 传输后 需要解压 那么这个压缩解压就需要 使用cpu 是很消耗cpu的
如果是运算密集型的job 应该少压缩 如果是io密集型的可以多用压缩.
可以看到上面是MapReduce常用的压缩编码
然后可以看到有一列是是否可切片这一列很重要对吧.
然后上面是压缩性能的比较 各种方式 可以根据需要选择
这里说个snappy 这个压缩很快
去官网看看 可以看到可以达到250mb/s的压缩速度
然后解压可以达到500mb/s的速度很快了.
可以看到压缩方式的选择 gzip是压缩率搞 但不支持切片
选择的时候可以根据各种压缩方式的特点 以及需求来选择
可以看到在MapReduce中 压缩可以在3个地方进行
在输入端 mapper输出端 以及reducer输出端 都应该使用哪种压缩?
可以看到如果数据量小于块大小 数据量不大 那么在输入端 要考虑压缩速度
如果数据量非常大 就要考虑支持切片 以及压缩的大小了
可以根据上面的说明选择.