|
|
Cardon, Tejay E 2012-07-24, 21:21
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)
John Vines 2012-07-24, 21:45
If you go to ACCUMULO_HOME/src/server/src/main/c++, run make install, and it should fix it right up. You may have to delete any existing native map libraries in your lib directory. If you want to generate a tar.gz with those libs, then run mvn -N assembly:single
John
On Tue, Jul 24, 2012 at 5:22 PM, Cardon, Tejay E <[EMAIL PROTECTED]>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)**** >
Keith Turner 2012-07-24, 21:54
On Tue, Jul 24, 2012 at 5:45 PM, John Vines <[EMAIL PROTECTED]> wrote: > If you go to ACCUMULO_HOME/src/server/src/main/c++, run make install, and it
One thing to add, you may need to run make clean before running make install. If the intermediate files exists for some reason, the make install will do nothing.
> should fix it right up. You may have to delete any existing native map > libraries in your lib directory. If you want to generate a tar.gz with those > libs, then run mvn -N assembly:single > > John > > > On Tue, Jul 24, 2012 at 5:22 PM, Cardon, Tejay E <[EMAIL PROTECTED]> > 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) > >
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? > > 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) >
|
|