1.压缩/解压
/* 压缩:可以最小化所需要的磁盘存储空间,以及减小磁盘和网络I/O操作,但是文件压缩和解压过程会增加CPU开销。因此,对于压缩密集型的job最好使用压缩,特别是有额外的CPU资源或者磁盘存储空间比较稀缺的情况。 */ -- BZip2压缩率最高,但是消耗最多的CPU开销 -- GZip是压缩率和压缩/解压速度上的下一个选择 -- LZO和Snappy压缩率低于前两者,但是速度快 -- Bzip2和LZO可以支持块级别的压缩,另外两者不支持,如果用后两者,可以将文件分割成期望值的大小。
2.开启中间压缩
/* 对中间数据进行压缩可以减少job中map和reduce task中间的数据传输量,对与中间数据,选择一个低CPU开销的编/解器要比选择一个压缩率高的编/解要重要的多。 */ hive.exec.compress.intermediate = true
3.最终输出结果压缩
/* 当Hive将输出写入到表中,输出内容同样可以进行压缩。 */ hive.compress.output = true -- 开启输出结果压缩功能