2015-07-20 65 views
0

当试图运行工作,我得到以下错误:的Hadoop序列文件压缩

SequenceFile doesn't work with GzipCodec without native-hadoop code! 

我已经在好几个地方,我需要得到本机Hadoop的代码读取,但是这是一个痛苦我安装。这将是很好的,如果有一个参数我可以在某处设置(核心站点,hdfs站点,mapred站点...等),并重新启动hdfs。

我已经尝试设置在mapred-site.xml中的以下特性没有任何的运气:

mapred.map.output.compress.codec 
mapreduce.output.fileoutputformat.compress.codec 

有没有办法从Gzip已更改为不需要本地代码另一个压缩格式?

的Hadoop版本:5.2.0 CDH OS :CentOS的6.6

回答

0

您可以使用LZO或斯纳皮https://code.google.com/p/hadoop-snappy/为压缩数据。您应该将这些配置添加到您的mapred-site.xml

<property> 
    <name>mapred.compress.map.output</name> 
    <value>true</value> 
    </property> 

<property> 
    <name>mapred.map.output.compression.codec</name> 
    <value>org.apache.hadoop.io.compress.SnappyCodec</value> 
</property> 
+0

该链接说明在代码中设置压缩类。我想知道如何设置它,以便每个作业获得相同的压缩级别。这是可以在mapred-site.xml中设置的东西吗?如果是这样,需要设置哪些属性才能使其工作? – Crackerman

+0

@克拉克曼更新 – Abdulrahman