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

Reply via email to