HDFS上的LZO压缩和索引文件就地?

时间:2014-03-05 07:22:13

标签: hadoop lzo

通常我会执行以下操作来使用LZO:

  1. 使用lzop命令压缩本地磁盘上的数据文件。
  2. 将其放入HDFS。
  3. 使用分布式lzo索引器生成.index文件。
  4. 我想知道有没有办法在HDFS上同时压缩和索引原始文件?

1 个答案:

答案 0 :(得分:1)

是的,你可以:

在客户端和服务器上的core-site.xml中,将com.hadoop.compression.lzo.LzopCodec附加到以逗号分隔的编解码器列表中:

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

在JobTracker主机上编辑mapred-site.xml文件:

<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> 

<property>     
   <name>mapred.output.compression.type</name>        
   <value>BLOCK</value>
</property>