accumulo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Wall <mjw...@gmail.com>
Subject Re: Unable to get Mini to use native maps - 1.6.2
Date Tue, 23 Feb 2016 19:02:16 GMT
Dan,

My first though was are you setting LD_LIBRARY_PATH or
DYLIB_LIBRARY_PATH to a directory that contains the libaccumulo shared
library?  If that didn't work, are you setting
-Djava.library.path=whateverdirectory.

But looking through the code, at least in 1.6, it looks like the NativeMap
is using java.library.path to load that shared library, see
https://github.com/apache/accumulo/blob/1.6/server/tserver/src/main/java/org/apache/accumulo/tserver/NativeMap.java#L77.
I don't see where the environment variables LD_LIBRARY_PATH or
DYLIB_LIBRARY_PATH are automatically setting up the java.library.path for
the MiniAccumuloCluster.  I see where they are read though, at
https://github.com/apache/accumulo/blob/master/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java#L316
.

To Josh's point, these are used when you call config.getNativeLibPaths()
yourself and then use that config to create a new MiniAccumuloCluster.  See
https://github.com/apache/accumulo/blob/1.6/test/src/test/java/org/apache/accumulo/harness/MiniClusterHarness.java#L81
for
an example.  One thing to note is this harness is in the test module, which
is run after the native module.  The native module builds the shared
library during the integration-test phase, at
https://github.com/apache/accumulo/blob/1.6/server/native/pom.xml#L102.  So
the shared libraries are available when the test module runs, which is why
they can be used to test native functionality.  However, these shared
libraries are not published anywhere, so you will have to build them.  For
instructions on building them from a downloaded version of Accumulo 1.6 see
http://accumulo.apache.org/1.6/accumulo_user_manual.html#_native_map_building
.

Hope that helps.

Mike





On Tue, Feb 23, 2016 at 11:56 AM, Dan Blum <dblum@bbn.com> wrote:

> In order to test to make sure we don't have more code that needs a
> workaround for https://issues.apache.org/jira/browse/ACCUMULO-4148 I am
> trying again to enable the native maps for Mini, which we use for testing.
>
> I set tserver.memory.maps.native.enabled to true in the site XML, and this
> is getting picked up since I see this in the Mini logs:
>
> [server.Accumulo] INFO : tserver.memory.maps.native.enabled = true
>
> However, NativeMap should log something when it tries to load the library,
> whether it succeeds or fails, but it logs nothing. The obvious conclusion
> is
> that something about how MiniAccumuloCluster starts means that this setting
> is ignored or overridden, but I am not finding it. (I see the mergeProp
> call
> in MiniAccumuloConfigImpl.initialize which will set TSERV_NATIVEMAP_ENABLED
> to false, but that should only set it if it's not already in the
> properties,
> which it should be, and as far as I can tell the log message above is
> issued
> after this.)
>
>

Mime
View raw message