多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
压缩可以节约磁盘的空间,基于文本的压缩率可达40%+。压缩可以增加吞吐量和性能量(减小载入内存的数据量),但是在压缩和解压过程中会增加CPU的开销。所以针对IO密集型的jobs(非计算密集型)可以使用压缩的方式提高性能。 |压缩格式 |Hadoop自带 |算法 |文件扩展名 |支持切分 |换成压缩格式后,原来的程序是否需要修改| 压缩/解压速度 | | --- | --- | --- | --- | --- | --- | --- | |DEFLATE |是,直接使用 |DEFLATE|.deflate |否 |和文本处理一样,不需要修改 | - | |Gzip |是,直接使用 |DEFLATE|.gz |否 |和文本处理一样,不需要修改 | 中 | |bzip2 |是,直接使用 |bzip2 |.bz2 |是 |和文本处理一样,不需要修改 | 慢 | |LZO |否,需要安装 |LZO |.lzo |是 |需要建索引,还需要指定输入格式 | 快 | |Snappy |否,需要安装 |Snappy |.snappy |否 |和文本处理一样,不需要修改 | 快 | 在实际项目中使用Snappy比较多,优点是速度快,缺点无法切分(针对切分的问题,Reduce端输出使用bzip2压缩,以便后续的map任务对数据进行split)。 ```sql create table a_orc ( customerid int, name string, age int, address string ) stored as orc tblproperties ("orc.compress" = "snappy"); ```