You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2016/09/19 13:16:20 UTC
[jira] [Commented] (IGNITE-3929) Hadoop: Fix native libraries
loading mechanism.
[ https://issues.apache.org/jira/browse/IGNITE-3929?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15503459#comment-15503459 ]
Vladimir Ozerov commented on IGNITE-3929:
-----------------------------------------
Looks like we can employ the following mechanism:
1) Still use {{HadoopConfiguration.getNativeLibraryNames()}} method.
2) Add well-known Hadoop (and any other distribution) library names.
3) If name is absolute, then use {{System.load}}. If relative - {{System.loadLibrary}}.
4) Try loading libraries in static initializer of {{HadoopClassLoader}}.
5) All user-defined libs are considered mandatory, while our libs may be either mandatory or optional. E.g. {{hadoop}} is optional library.
6) Link loaded libraries from parent classloader to current classloader.
> Hadoop: Fix native libraries loading mechanism.
> -----------------------------------------------
>
> Key: IGNITE-3929
> URL: https://issues.apache.org/jira/browse/IGNITE-3929
> Project: Ignite
> Issue Type: Sub-task
> Components: hadoop
> Affects Versions: 1.7
> Reporter: Vladimir Ozerov
> Assignee: Ivan Veselovsky
> Fix For: 1.8
>
>
> Currently we do the following to load native libraries:
> 1) Ask parent class loader (normally it is app class loader) to load {{org.apache.hadoop.util.NativeCodeLoader}} class. It will force loading of relevant Hadoop native libraries.
> 2) Then hack into parent class loader internals, find loaded library, and wire it up to current classloader.
> This approach will not work any more because parent classloader normally will not have Hadoop in classpath.
> We should provide alternative solution.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)