hive 压缩 最终结果 中间结果

本文深入探讨了Hive、MapReduce的压缩技术,包括如何设置参数以实现数据压缩,以及压缩后如何在SQL+Python环境中调用并自动解压数据。详细解释了Hive表数据和中间结果数据的压缩策略。
部署运行你感兴趣的模型镜像

1.hive压缩

hive>set mapred.output.compress=true;                                                 

hive> set mapred.compress.map.output=true;                       
hive> set hive.exec.compress.output=true;              
hive> set mapred.map.output.compression.codec=org.apache.hadoop.io.compress.BZip2Codec;
hive> set hive.exec.compress.intermediate=true;                                        
hive> set io.compression.codecs=org.apache.hadoop.io.compress.BZip2Codec;              
hive> SET io.seqfile.compression.type=BLOCK;                                           

最后hive表数据是.bz2后缀


奇怪现象true false参数在sql脚本中使用可以起作用,而mapred.map.output.compression.codec不起作用,需要在hive的xml中配置。

2.mapreduce压缩

conf.setBoolean("mapred.output.compress", true);
conf.setClass("mapred.output.compression.codec", BZip2Codec.class, CompressionCodec.class);
压缩后有后缀


3.hive压缩后的表,可以用使用sql+python调用,数据会自动解压。

说明:

最终的结果数据开启压缩: 
<property> 
  <name>hive.exec.compress.output</name> 
  <value>true</value> 
  <description> This controls whether the final outputs of a query (to a local/hdfs file or a hive table) is compressed. The compression codec and other options are determined from hadoop config variables mapred.output.compress* </description> 
</property> 

中间的结果数据是否压缩,当sql生成多个MR,最后mr输出不压缩,之前MR的结果数据压缩。 
<property> 
  <name>hive.exec.compress.intermediate</name> 
  <value>true</value> 
  <description> This controls whether intermediate files produced by hive between multiple map-reduce jobs are compressed. The compression codec and other options are determined from hadoop config variables mapred.output.compress* </description> 
</property> 
<property> 
<name>hive.intermediate.compression.codec</name> 
<value>org.apache.hadoop.io.compress.LzoCodec</value> 
</property> 


您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值