在尝试为hadoop安装Lzo压缩后,我需要帮助,因为我真的不知道为什么它不起作用。
我在CentO 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。我已经根据下面的链接更新了mapred-site和core-site,我已经将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吗?我应该在0.20 hadoop上编译Lzo以便使用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个节点)上处理非常大的文件。拥有可拆分的压缩文件可以使其运行得非常快。
欢迎任何评论或想法。
最佳答案
我的OSX机器上也有同样的问题。当我从类路径中删除hadoop-lzo.jar(0.4.16)并放入hadoop-gpl-compression jar时,此问题已解决。
关于hadoop - Hadoop压缩: “Loaded native gpl library”但 “Failed to load/initialize native-lzo library”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17454108/