即使在指定-Djava.library.path = / * / * /之后,也无法解压缩snappy文件

时间:2017-01-23 21:09:48

标签: java hadoop cloudera snappy

线程“main”中的异常

java.lang.RuntimeException: native snappy library not available: this version of libhadoop was built without snappy support.
at org.apache.hadoop.io.compress.SnappyCodec.checkNativeCodeLoaded(SnappyCodec.java:65)
at org.apache.hadoop.io.compress.SnappyCodec.getDecompressorType(SnappyCodec.java:193)
at org.apache.hadoop.io.compress.CodecPool.getDecompressor(CodecPool.java:178)
at org.apache.hadoop.io.compress.CompressionCodec$Util.createInputStreamWithCodecPool(CompressionCodec.java:157)
at org.apache.hadoop.io.compress.SnappyCodec.createInputStream(SnappyCodec.java:164)

我可以看到snappy库已正确安装。我已经提到使用-Djava.library.path的lib路径,仍然导致相同的错误。

有什么建议吗?

hadoop checknative -a

本地库检查:

hadoop:  true /opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/hadoop/lib/native/libhadoop.so.1.0.0
zlib:    true /lib64/libz.so.1
snappy:  true /opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/hadoop/lib/native/libsnappy.so.1
lz4:     true revision:10301
bzip2:   true /lib64/libbz2.so.1
openssl: true /usr/lib64/libcrypto.so

2 个答案:

答案 0 :(得分:0)

您似乎正在遇到:

Snappy可能会抱怨如果找不到libhadoop,Hadoop的构建没有snappy。

https://issues.apache.org/jira/browse/HADOOP-13684

你应该调试libhadoop.so并查看你的LD_LIBRARY_PATH作为初学者。

答案 1 :(得分:0)

问题已解决。

我在类路径中使用了错误版本的hadoop-core jar文件。

修改使用当前CDH版本的hadoop核心jar后,能够执行快速压缩和解压缩。