lzo压缩之配置文件与程序对应关系

本文详细解析了Hadoop配置文件中关于IO压缩编码的配置与程序中对应实现之间的关联,包括核心配置文件core-site.xml与mapred-site.xml中的参数设置,以及如何在程序中通过配置来启用LZO压缩。文章还讨论了Hadoop框架如何自动识别并处理带有特定后缀的压缩文件。

lzo压缩之配置文件与程序对应关系

1.core-site.xml中的:

<property>
    <name>io.compression.codecs</name>
    <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.BZip2Codec</value>
  </property>
  <property>
  <name>io.compression.codec.lzo.class</name>
  <value>com.hadoop.compression.lzo.LzoCodec</value>

对应程序中的:

conf.set("io.compression.codecs", 
"org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec," +
"com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec," +
"org.apache.hadoop.io.compress.BZip2Codec");
conf.set("io.compression.codec.lzo.class", "om.hadoop.compression.lzo.LzoCodec");


2.mapred-site.xml中的:

<!--设置map输出 -->
   <property>  
      <name>mapred.compress.map.output</name>  
      <value>true</value>  
   </property>     
   <property>  
     <name>mapred.map.output.compression.codec</name>  
     <value>com.hadoop.compression.lzo.LzopCodec</value>  
   </property>

对应程序中的:

//设置map输出
conf.setCompressMapOutput(true);
conf.setMapOutputCompressorClass(LzopCodec.class);//如果为LzoCodec则生成的文件的后缀名为.lzo_deflate

注:

如果一个作业的 Inputformat 是 TextInputFormat , 并且框架检测到输入文件的后缀是 .gz 和 .lzo ,就会使用对应的 CompressionCodec 自动解压缩这些文件。 但是需要注意,上述带后缀的压缩文件不会被切分,并且整个压缩文件会分给一个mapper来处理。

3.mapred-site.xml中的:

 <!--设置reduce输出 -->
   <property>  
      <name>mapred.output.compress</name>  
      <value>true</value>  
   </property>     
   <property>  
     <name>mapred.output.compression.codec</name>  
     <value>com.hadoop.compression.lzo.LzopCodec</value>  
   </property>     

对应程序中的:

//设置reduce输出
conf.setBoolean("mapred.output.compress", true);
conf.setClass("mapred.output.compression.codec", LzopCodec.class, CompressionCodec.class);//LzopCodec(.lzo)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值