【问题标题】:Unable to decompress snappy file, even after specifying -Djava.library.path=/*/*/即使在指定 -Djava.library.path=/*/*/ 之后也无法解压缩 snappy 文件
【发布时间】:2017-01-23 21:09:48
【问题描述】:

线程“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

【问题讨论】:

    标签: java hadoop cloudera snappy


    【解决方案1】:

    看起来你遇到了:

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

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

    您应该调试 libhadoop.so 并查看您的 LD_LIBRARY_PATH 以了解初学者。

    【讨论】:

      【解决方案2】:

      问题已解决。

      我在类路径中使用了不正确版本的 hadoop-core jar 文件。

      修改为使用当前CDH版本的hadoop核心jar后,可以进行snappy压缩和解压。

      【讨论】:

        猜你喜欢
        • 2017-02-02
        • 1970-01-01
        • 2016-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多