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 <[email protected]> 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.) > >
