我试图让grep示例与cdh捆绑在一起,以读取sequence/snappy文件。
默认情况下,程序在尝试读取序列/快照文件时抛出错误:
java.io.eofexception:org.apache.hadoop.io.compress.blockdecompressorstream.getcompresseddata(blockdecompressorstream)的输入流中出现意外的块结尾。java:121)
在org.apache.hadoop.io.compress.blockdecompressorstream.decompress(blockdecompressorstream。java:95)
在org.apache.hadoop.io.compress.decompressorstream.read(decompressorstream。java:83)
在java.io.inputstream.read(inputstream。java:82)
所以我编辑了代码来读取序列文件。
改变:
FileInputFormat.setInputPaths(grepJob, args[0]);
收件人:
FileInputFormat.setInputPaths(grepJob, args[0]);
grepJob.setInputFormatClass(SequenceFileAsTextInputFormat.class);
但我还是犯了同样的错误。
1) 我需要手动设置输入压缩编解码器吗?我以为sequencefile阅读器会自动检测压缩。
2) 如果需要手动设置压缩,是使用“setinputformatclass”还是在“conf”对象中设置的?
1条答案
按热度按时间ffvjumwh1#
让我的代码工作。我有点困惑,如何,但我没有指定压缩编解码器在任何地方的代码。以下是原始代码:
我很困惑,因为在一个简单的“猫”程序,我必须设置压缩编解码器。