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)