I built hadoop-3.2.2 from source as part of an effort to package it as an RPM.
The RPM installation failed stating the following libraries were not found -
libjvm.so()(64bit)
libjvm.so(SUNWprivate_1.1)(64bit)
It means packages providing the capabilities are not installed?
If you do not add dependency on relevant JDK packages by "Requires: " in the
.spec file,
you need to manually install them first.
For example on CentOS 8, 'libjvm.so()(64bit)' is provided by
java-1.8.0-openjdk-headless::
$ repoquery --whatprovides 'libjvm.so()(64bit)'
Last metadata expiration check: 0:00:18 ago on Thu 15 Jul 2021 11:47:10 AM
UTC.
java-1.8.0-openjdk-headless-1:1.8.0.282.b08-4.el8.x86_64
java-1.8.0-openjdk-headless-1:1.8.0.292.b10-1.el8_4.x86_64
java-1.8.0-openjdk-headless-fastdebug-1:1.8.0.282.b08-4.el8.x86_64
java-1.8.0-openjdk-headless-fastdebug-1:1.8.0.292.b10-1.el8_4.x86_64
java-1.8.0-openjdk-headless-slowdebug-1:1.8.0.282.b08-4.el8.x86_64
java-1.8.0-openjdk-headless-slowdebug-1:1.8.0.292.b10-1.el8_4.x86_64
On 2021/07/13 17:15, Sharan T wrote:
I built hadoop-3.2.2 from source as part of an effort to package it as an RPM.
The RPM installation failed stating the following libraries were not found -
libjvm.so()(64bit)
libjvm.so(SUNWprivate_1.1)(64bit)
Trying to figure out what was causing the problem lead to figuring out that the
dependencies were coming in from libhadoop.so -
> find . -name '*.so*' -exec ls {} \; -exec ldd {} \;
/usr/lib/hadoop/lib/native/libhadoop.so
linux-vdso.so.1 (0x00007fffdd1e8000)
libdl.so.2 => /lib/libdl.so.2 (0x00007fe2f4def000)
libjvm.so => not found
libpthread.so.0 => /lib/libpthread.so.0 (0x00007fe2f4dce000)
libc.so.6 => /lib/libc.so.6 (0x00007fe2f4c16000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe2f4e21000)
./usr/lib/hadoop/lib/native/libnativetask.so
linux-vdso.so.1 (0x00007ffd7d35a000)
libdl.so.2 => /lib/libdl.so.2 (0x00007fe8fbd90000)
librt.so.1 => /lib/librt.so.1 (0x00007fe8fbd86000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007fe8fbd65000)
libz.so.1 => /lib/libz.so.1 (0x00007fe8fbb47000)
libjvm.so => /usr/lib/jvm/OpenJDK8-1.8.0/jre/lib/amd64/server/libjvm.so
(0x00007fe8fade9000)
libstdc++.so.6 => /lib/libstdc++.so.6 (0x00007fe8fac61000)
libm.so.6 => /lib/libm.so.6 (0x00007fe8faadf000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fe8faac6000)
libc.so.6 => /lib/libc.so.6 (0x00007fe8fa90e000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe8fbdfe000)
The library is not located in default search paths. This is where it is located
- /usr/lib/jvm/OpenJDK8-1.8.0/jre/lib/amd64/server/libjvm.so
Are there pointers to what I can do within hadoop-3.2.2 src code to fix this?
I found an old HADOOP JIRA on this but there were no responses to the issue raised -
https://issues.apache.org/jira/browse/HADOOP-9001
<https://issues.apache.org/jira/browse/HADOOP-9001>
Thanks,
Sharan
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@hadoop.apache.org
For additional commands, e-mail: user-h...@hadoop.apache.org