Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Accumulo >> mail # user >> tabletserver Error

Copy link to this message
RE: tabletserver Error
Thanks, Eric.  I'll look into trying that.

From: Eric Newton [mailto:[EMAIL PROTECTED]]
Sent: Friday, September 14, 2012 3:53 PM
Subject: Re: tabletserver Error

I don't know why your servers are showing up with weird names, but you can ignore "Failed to load native map library /usr/local/accumulo-1.4.1/lib/native/map/libNativeMap-Linux-amd64-64.so."  The server will use the non-native implementation.

The java implementation of the internal map uses JVM heap memory, but the native version uses memory outside of the JVM.  That's why the two configurations give the JVM different amounts of memory.

You can always rebuild the native code for your environment so that it loads:

 $ cd ./src/server/src/main/c++
# ensure the sources are newer than the libraries
 $ find . -name '*.h' -print | xargs touch
# rebuild: need to have developer tools installed
 $ make JAVA_HOME=/path/to/java/home


On Fri, Sep 14, 2012 at 3:42 PM, Cornish, Duane C. <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:

I have a 4 node cluster runing Accumulo.  I have it configured so that 1 node is the master and all 4 nodes also act as slaves.  The cloud seems to work fine.  I can ingest and query data.  When I view my Accumulo monitor page, it tells me that I have 4 tablet servers.  If I click to view the 4, it has the name of my node 1 twice and only 2 of the other nodes up and running as tables servers.  My node 2 does not appear.

I checked my tserver debug.log file on node 2 and I see the following error:

[tabletserver.NativeMap] ERROR: Failed to load native map library /usr/local/accumulo-1.4.1/lib/native/map/libNativeMap-Linux-amd64-64.so

java.lang.UnsatisfiedLinkError: /usr/local/accumulo-1.4.1/lib/native/map/libNativeMap-Linux-amd64-64.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/local/accumulo-1.4.1/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)
        at java.lang.System.load(System.java:1003)
        at org.apache.accumulo.server.tabletserver.NativeMap.loadNativeLib(NativeMap.java:144)
        at org.apache.accumulo.server.tabletserver.NativeMap.<clinit>(NativeMap.java:156)
        at org.apache.accumulo.server.tabletserver.TabletServerResourceManager.<init>(TabletServerResourceManager.java:123)
        at org.apache.accumulo.server.tabletserver.TabletServer.config(TabletServer.java:2993)
        at org.apache.accumulo.server.tabletserver.TabletServer.main(TabletServer.java:3121)
        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.accumulo.start.Main$1.run(Main.java:89)
        at java.lang.Thread.run(Thread.java:662)

My node 2 does contain the libstdc++.so.6 file.  I have read that there are differences between the native and standalone example configuration files in the conf/examples/ folder.  However, I was unable to see any major differences.  The only difference I saw was a line that I thought referred to size requirements:

test -z "$ACCUMULO_TSERVER_OPTS" && export ACCUMULO_TSERVER_OPTS="${POLICY} -Xmx1g -Xms1g -Xss128k"


test -z "$ACCUMULO_TSERVER_OPTS" && export ACCUMULO_TSERVER_OPTS="${POLICY} -Xmx2g -Xms2g -Xss128k"

My accumulo-env.sh file contains the first line as opposed to the second.  Any help on my error would be much appreciated.