Alexis Mignon created ARROW-7100:
------------------------------------

             Summary: libjvm not found on ubuntu 19.04 with java >8
                 Key: ARROW-7100
                 URL: https://issues.apache.org/jira/browse/ARROW-7100
             Project: Apache Arrow
          Issue Type: Bug
          Components: C++
    Affects Versions: 0.15.1
         Environment: ubuntu 19.04
            Reporter: Alexis Mignon


On ubuntu 19.04, with java-11 installed, the following code raises an error

 

{{$ python -c "import pyarrow as pa; pa.hdfs.connect()"}}
{{Traceback (most recent call last):}}
{{ File "<string>", line 1, in <module>}}
{{ File 
"/home/amignon/Projets/Sandbox/bwl_negbin/venv/lib/python3.7/site-packages/pyarrow/hdfs.py",
 line 215, in connect}}
{{ extra_conf=extra_conf)}}
{{ File 
"/home/amignon/Projets/Sandbox/bwl_negbin/venv/lib/python3.7/site-packages/pyarrow/hdfs.py",
 line 40, in __init__}}
{{ self._connect(host, port, user, kerb_ticket, driver, extra_conf)}}
{{ File "pyarrow/io-hdfs.pxi", line 89, in 
pyarrow.lib.HadoopFileSystem._connect}}
{{ File "pyarrow/error.pxi", line 80, in pyarrow.lib.check_status}}
{{pyarrow.lib.ArrowIOError: Unable to load libjvm}}

 

while it works with java-8 installed (even when JAVA_HOME points to java-11).

 

This seems to be due to a change in the directory structure of java. In 
java-11, libjvm lies in

/usr/lib/jvm/java-11-openjdk-amd64/lib/server/libjvm.so

Instead of

/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so

 

According to the code of 
[hdfs_internal.cc|https://github.com/apache/arrow/blob/21f610075242c957bf101c073bfee6c3698dfa3d/cpp/src/arrow/io/hdfs_internal.cc#L220]
 the search suffixes on linux are:

 

{{ }}{{ "/jre/lib/amd64/server", "/lib/amd64/server"}}

which would explain the problem.

This is confirmed by adding manually a amd64/server in the java-11 directory.

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to