基于Cloudera Manager5配置HIVE压缩

基于Cloudera Manager5配置HIVE压缩,配置HIVE的压缩,实际就是配置MapReduce的压缩,包括运行结果及中间结果的压缩。

1、基于HIVE命令行的配置

[plain] view plaincopy
  1. set hive.enforce.bucketing=true;  
  2. set hive.exec.compress.output=true;  
  3. set mapred.output.compress=true;  
  4. set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;  
  5. set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec;  

在hive的命令下行运行如上代码即可,这里用的是Gzip压缩。


2、基于xml文件的压缩配置

mapred-site.xml

[plain] view plaincopy
  1. <property>  
  2.   <name>mapred.output.compress</name>  
  3.   <value>true</value>  
  4.   <description>Should the job outputs be compressed?  
  5.   </description>  
  6. </property>  
  7. <property>  
  8.   <name>mapred.output.compression.codec</name>  
  9.   <value>org.apache.hadoop.io.compress.GzipCodec</value>  
  10.   <description>If the job outputs are compressed, how should they be compressed?  
  11.   </description>  
  12. </property>  

hive-site.xml

[html] view plaincopy
  1. <property>  
  2.   <name>hive.enforce.bucketing</name>  
  3.   <value>true</value>  
  4. </property>  
  5. <property>  
  6.   <name>hive.exec.compress.output</name>  
  7.   <value>true</value>  
  8. </property>  
  9. <property>  
  10.   <name>io.compression.codecs</name>  
  11.   <value>org.apache.hadoop.io.compress.GzipCodec</value>  
  12. </property>  

3、基于Cloudera Manager5配置HIVE压缩

1) 基于yarn的MR配置

基于Cloudera Manager5配置HIVE压缩


2) hive的配置

基于Cloudera Manager5配置HIVE压缩

增加如下内容

[html] view plaincopy
  1. <property>  
  2.   <name>hive.enforce.bucketing</name>  
  3.   <value>true</value>  
  4. </property>  
  5. <property>  
  6.   <name>hive.exec.compress.output</name>  
  7.   <value>true</value>  
  8. </property>  
  9. <property>  
  10.   <name>io.compression.codecs</name>  
  11.   <value>org.apache.hadoop.io.compress.GzipCodec</value>  
  12. </property>  

配置完毕,MapReduce包括hive运行结果以GZip进行压缩。
在hive命令行的话可以根据分区进行压缩。可以设置:
--设置hive处理压缩
set hive.exec.compress.output=true;
--yarn
set mapreduce.output.fileoutputformat.compress=true;
set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.GzipCodec;