[
https://issues.apache.org/jira/browse/HADOOP-11127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14950072#comment-14950072
]
Alan Burlison commented on HADOOP-11127:
----------------------------------------
I need to modify the scheme to include the OS as well as the CPU architecture,
I think the path will have to be os.name/os.arch.
Whilst it's technically feasible to distribute the JNI component inside the
Hadoop JAR it's far from trivial in build terms to get them all in the same
place for packaging. Also, you can't load a shared object from inside a JAR
file so there'd have to be logic to identify the corect one and extract it to
the filesystem. And then you'd have to deal with the issues of where in the
filesystem that should be, and of multiple Hadoop instances all wanting to
write *their* version of the JNI library to the filesystem, potentially
simultaneously.
For those reasons I though the JNI in JAR proposal was unworkable, at least as
a first phase.
> Improve versioning and compatibility support in native library for downstream
> hadoop-common users.
> --------------------------------------------------------------------------------------------------
>
> Key: HADOOP-11127
> URL: https://issues.apache.org/jira/browse/HADOOP-11127
> Project: Hadoop Common
> Issue Type: Bug
> Components: native
> Reporter: Chris Nauroth
> Assignee: Alan Burlison
> Attachments: HADOOP-11064.003.patch, proposal.txt
>
>
> There is no compatibility policy enforced on the JNI function signatures
> implemented in the native library. This library typically is deployed to all
> nodes in a cluster, built from a specific source code version. However,
> downstream applications that want to run in that cluster might choose to
> bundle a hadoop-common jar at a different version. Since there is no
> compatibility policy, this can cause link errors at runtime when the native
> function signatures expected by hadoop-common.jar do not exist in
> libhadoop.so/hadoop.dll.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)