我用lzo压缩输出。我试过这个:kevin weil的hadoop lzo项目,然后用 LzoCodec
和我的工作一起上课:
TextOutputFormat.setOutputCompressorClass(job, LzoCodec.class);
现在压缩效果很好。
我的问题是压缩结果是 .lzo_deflate
我无法解压的文件。
lzop实用程序似乎不支持这种类型的文件。 LzopCodec
应该给一个 .lzo
文件,但它没有工作,但它在同一个包作为 LzoCodec
( org.apache.hadoop.io.compress
)这可能涉及到兼容性问题,因为我使用了旧的api(0.19)来实现压缩。
这个问题的答案建议使用python解决方案,但是我需要java。
我正在使用hadoop1.1.2和java6。
3条答案
按热度按时间lzfw57am1#
这个答案帮助我从
.lzo_deflate
要设置所需的输出格式:ncecgwcz2#
.lzo_deflate
表示没有通常的头和尾的lzo流。所以你需要把生肉包起来.lzo_deflate
具有lzop所期望的头和尾的流。或者至少是标题,然后忽略缺少的尾部的错误。您需要查看页眉和尾部文档。名称中的“deflate”是一个奇怪的选择,但它指的是gzip类比,其中没有gzip头和尾的原始压缩数据格式称为deflate。
5kgi1eie3#
我也遇到了同样的问题。原因是我没有使用正确的编解码器。请检查作业配置中的编解码器。