2016-10-22 8 views
1

gz形式で多数のファイルを保存していて、これらのファイルを読み込んでmap-reduceプログラム(PIGを使用)を実行しようとしています。私が問題に遭遇している問題は、HadoopのネイティブDecompressor(ZlibDecompressor)がデータチェックのためにいくつかのデータを正常に解凍できないことです。しかし、私はこれらのファイルをjava GZIPInputStreamを使用して正常に読み取ることができます。今私の質問は - Zlibを無効にする方法はありますか?または、gzip入力ファイルを解凍するために使用できるhadoop(2.7.2)に代替のGZipCodecがありますか?hadoopでネイティブzlib圧縮ライブラリを無効にする方法

org.apache.hadoop.mapred.TaskAttemptListenerImpl: Task: attempt_1475882463863_0108_m_000022_0 - exited : java.io.IOException: incorrect data check 
    at org.apache.hadoop.io.compress.zlib.ZlibDecompressor.inflateBytesDirect(Native Method) 
    at org.apache.hadoop.io.compress.zlib.ZlibDecompressor.decompress(ZlibDecompressor.java:228) 
    at org.apache.hadoop.io.compress.DecompressorStream.decompress(DecompressorStream.java:91) 
    at org.apache.hadoop.io.compress.DecompressorStream.read(DecompressorStream.java:85) 
    at java.io.InputStream.read(InputStream.java:101) 
    at org.apache.hadoop.util.LineReader.fillBuffer(LineReader.java:180) 
    at org.apache.hadoop.util.LineReader.readDefaultLine(LineReader.java:216) 
    at org.apache.hadoop.util.LineReader.readLine(LineReader.java:174) 

下記

エラーはあなたの助けのためにありがとうございました。

答えて

1

私は自分自身で答えを見つけました。次のプロパティを設定すると、すべてのネイティブライブラリを無効にすることができます。

io.native.lib.available = false;

またはGzipCompressorのネイティブ実装を削除するためにorg.apache.hadoop.io.compress.GzipCodec.javaを拡張することができます。

関連する問題