Map输出压缩
开启map输出阶段压缩可以减少job中map和Reduce task间数据传输量。
示例:
- 开启hive中间传输数据压缩功能 hive (default)>set hive.exec.compress.intermediate=true;
- 开启mapreduce中map输出压缩功能 hive (default)>set mapreduce.map.output.compress=true;
- 设置mapreduce中map输出数据的压缩方式 hive (default)>set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
- 执行查询语句
- 查看是否压缩 打开网址:http://hcmaster:8088/cluster
单击History连接
在打开的页面中搜索compress.codec
示例:
- 开启hive最终输出数据压缩功能 hive (default)>set hive.exec.compress.output=true;
- 开启mapreduce最终输出数据压缩 hive (default)>set mapreduce.output.fileoutputformat.compress=true;
- 设置mapreduce最终数据输出压缩方式 hive (default)> set mapreduce.output.fileoutputformat.compress.codec = org.apache.hadoop.io.compress.SnappyCodec;
- 设置mapreduce最终数据输出压缩为块压缩
- 测试一下输出结果是否是压缩文件 hive (default)> insert overwrite local directory ‘/opt/module/datas/distribute-result’ select * from emp distribute by deptno sort by empno desc;
- 再次执行第4步中,设置 hive (default)> set mapreduce.output.fileoutputformat.compress.type=BLOCK;然后测试
结果: