-Re: GLIBC error
Josh Elser 2012-07-24, 22:50
(Even though jvines beat me to it...)
Did you build the Accumulo distribution on the node which you're having
these troubles on?
The native maps (the libNativeMap-Linux-amd64-64.so file) is C++ code
which is called through JNDI. I'm rusty on my dynamic linking, but check
the version of gcc and glibc installed on the host in question. I'm
guessing there person who built the dist tarball you downloaded doesn't
match the versions you have on that host. Post your linux distro/release
and the output of `gcc -v` if you need more guidance.
An alternative, although not a very desirable one, is to move the native
maps out of lib/native (just move it to lib/native-orig and the tserver
will just use Java code for the inMemoryMaps. Your performance will
suffer, but the tserver should start right up.
On 07/24/2012 04:21 PM, Cardon, Tejay E wrote:
> Iï¿½ve been trying to run Accumulo on a new cluster, but Iï¿½m having
> trouble. Iï¿½ve done this many times before, but this time Iï¿½m getting
> an error on the tservers regarding glibc. I think Iï¿½ve tracked it down
> to a version issue (the version of Glibc Iï¿½ve got installed isnï¿½t new
> enough, so it doesnï¿½t contain the right version of GLIBCXX). I ran
> into this once before, and the solution was to build Accumulo from
> scratch with Maven. However, Iï¿½ve tried that this time with no
> success. If I download the *dist.tar.gz and do the build from there,
> it fails. If I download the *-src.tar.gz and build from it, I canï¿½t
> seem to find the final packaged .tar.gz. If I use the src.tar.gz,
> build it, and then just use the directory I built from, I get an error
> about setting up log4j. Any suggestions?
> Hereï¿½s the error I get if I use the ï¿½dist.tar.gz This error is found
> in the .debug.log and .log files from the tserver.
> ERROR: Failed to load native map library
> /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required
> by /opt/accumulo-1.4.0/lib/native/map/libNativeMap-Linux-amd64-64.so)
> at java.lang.ClassLoader$NativeLibrary.load(Native Method)
> at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807)
> at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703)
> at java.lang.Runtime.load0(Runtime.java:770)