2014-03-05 66 views
1

通常我會做以下使用LZO:LZO-在HDFS上壓縮和索引文件就地?

  1. 使用LZOP命令來壓縮本地磁盤上的數據文件。
  2. 把它放到HDFS中。
  3. 使用分佈式lzo索引器生成.index文件。

我想知道是否有辦法在同一時間就地壓縮和索引HDFS上的原始文件?

回答

1

是的,你可以:

在客戶端和服務器上的核心-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>