![5dadfd6a2a78c23fc9514f8309dad423.png](https://img-blog.csdnimg.cn/img_convert/5dadfd6a2a78c23fc9514f8309dad423.png)
作者 | Tai_Park
责编 | Carol
来源 | CSDN 博客
封图 | CSDN付费下载于东方 IC
今天来聊聊 Hadoop 的压缩。
压缩:原始数据通过压缩手段产生目标数据,要求输入和输出的内容是一样的(大部分),但体积是不一样的。
对于单机用户来说,磁盘空间的限制导致了文件压缩的需求;对于Hadoop用户来说,由于DataNode的限制,也要对HDFS上的数据进行压缩。压缩的目的是减少存储在HDFS上的数据所占用的空间(磁盘的角度),提升网络的传输效率(网络的角度)。对于分布式计算框架来说,Shuffle是一个主要的技术瓶颈。
大数据处理流程基本上是输入==>处理==>输出,举例来说,在离线处理方面,Spark可以HDFS==>Spark==>HDFS,在实时处理方面,Spark Streaming可以Kafka==>Spark Streaming==>RDBMS。压缩可以使用在输入时,也可以使用在处理时(比如map作为中间状态,它的输出可以压缩以减少Shuffle的量),输出时。