Hive 压缩
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
Reduce输出压缩
示例:
- 开启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;然后测试
结果: