hadoop压缩:“已加载本机gpl库”,但“未能加载/初始化本机lzo库”

56lgkhnf  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(570)

在为hadoop安装了几次lzo压缩之后,我需要帮助,因为我真的不知道为什么它不起作用。
我正在centos 6上使用hadoop 1.0.4。我试过了http://opentsdb.net/setup-hbase.html, https://github.com/kevinweil/hadoop-lzo 还有其他一些,但我还是有错误: 13/07/03 19:52:23 INFO lzo.GPLNativeCodeLoader: Loaded native gpl library 13/07/03 19:52:23 WARN lzo.LzoCompressor: java.lang.NoSuchFieldError: workingMemoryBuf 13/07/03 19:52:23 ERROR lzo.LzoCodec: Failed to load/initialize native-lzo library 即使加载了本机gpl。我已经更新了我的Map网站和核心网站根据下面的链接,我复制/粘贴libs在正确的路径(仍然根据链接)。
真正的问题是lzo测试在namenode上工作:
13/07/03 18:55:47 INFO lzo.GPLNativeCodeLoader: Loaded native gpl library 13/07/03 18:55:47 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library [hadoop-lzo rev ] 我尝试在haddop-env.sh中设置几个路径,但似乎没有正确的解决方案。。。所以,如果你有什么想法,林克?我真的很感兴趣
[编辑]一周后,我还在努力让它正常运作。我尝试过sudhirvn.blogspot.fr/2010/08/hadoop-lzo-installation-errors-and.html,但是删除所有lzo和gplcompression库,然后安装nez一点也不好。
这是因为我的hadoop核心版本吗?有没有可能同时拥有hadoop-core-0.20和hadoop-core-1.0.4?为了使用lzo,我应该在0.20 hadoop上编译lzo吗?顺便说一下,我已经试过这样编译hadoop lzo: CLASSPATH=/usr/lib/hadoop/hadoop-core-1.0.4.jar CFLAGS=-m64 CXXFLAGS=-m64 ant compile-native tar 如果有帮助,则完全错误为:

INFO lzo.GPLNativeCodeLoader: Loaded native gpl library
    WARN lzo.LzoCompressor: java.lang.NoSuchFieldError: workingMemoryBuf
    ERROR lzo.LzoCodec: Failed to load/initialize native-lzo library
    INFO lzo.LzoIndexer: [INDEX] LZO Indexing file test/table.lzo, size 0.00 GB...
    WARN snappy.LoadSnappy: Snappy native library is available
    INFO util.NativeCodeLoader: Loaded the native-hadoop library
    INFO snappy.LoadSnappy: Snappy native library loaded
    Exception in thread "main" java.lang.RuntimeException: native-lzo library not available
            at com.hadoop.compression.lzo.LzopCodec.createDecompressor(LzopCodec.java:87)
            at com.hadoop.compression.lzo.LzoIndex.createIndex(LzoIndex.java:229)
            at com.hadoop.compression.lzo.LzoIndexer.indexSingleFile(LzoIndexer.java:117)
            at com.hadoop.compression.lzo.LzoIndexer.indexInternal(LzoIndexer.java:98)
            at com.hadoop.compression.lzo.LzoIndexer.index(LzoIndexer.java:52)
            at com.hadoop.compression.lzo.LzoIndexer.main(LzoIndexer.java:137)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

我真的很想使用lzo,因为我必须在一个相当小的集群(5个节点)上处理非常大的文件。拥有可拆分的压缩文件可以让它运行得非常快。任何评论或想法都是受欢迎的。

bxfogqkk

bxfogqkk1#

我遇到了完全相同的问题,最后通过随机选择一个datanode并检查lzop是否正确安装来解决它。
如果不是的话,我会:

sudo apt-get install lzop

假设您使用的是基于debian的软件包。

gwbalxhn

gwbalxhn2#

我的osx机器也有同样的问题。当我从类路径中删除hadoop-lzo.jar(0.4.16)并改为使用hadoop-gpl压缩jar时,问题就解决了。

相关问题