1 开启 Map 输出阶段压缩(中间压缩)
开启 map 输出阶段压缩可以减少 job 中 map 和 Reduce task 间数据传输量。具体配置如下:
步骤1: 开启 Hive 中间传输数据压缩功能
map 任务和 reduce 任务之间的数据的压缩. hive.exec.compress.intermediate 默认是 false.
set hive.exec.compress.intermediate=true;
步骤2: 开启 mapreduce 中 map 输出压缩功能
set mapreduce.map.output.compress=true;
步骤3: 设置 mapreduce 中 map 输出数据的压缩方式
set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
set mapred.map.output.compression.codec=com.hadoop.compression.lzo.LzoCodec;
步骤4: 执行查询语句
select count(ename) name from emp;
由于数据量太小, 所以几乎看不到与不压缩的区别