(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?
Thanks
Tejay
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
/opt/accumulo-1.4.0/lib/native/map/libNativeMap-Linux-amd64-64.so
java.lang.UnsatisfiedLinkError:
/opt/accumulo-1.4.0/lib/native/map/libNativeMap-Linux-amd64-64.so:
/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)