2015-07-20 38 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