IMPALA-12355: Make utility_entrypoint arch-agnostic

Updates utility_entrypoint.sh for the impala_profile_tool image to
detect the correct JVM native library paths based on a glob, as they're
architecture-specific. Follows the pattern established in
daemon_entrypoint.sh, except impala_profile_tool only uses Java 8 on
Ubuntu.

Excepted output

  $ docker run --entrypoint bash -i impala_profile_tool_debug /opt/impala/bin/utility_entrypoint.sh
  LD_LIBRARY_PATH: /opt/impala/lib:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server

Change-Id: I8e6b781bef52e60072ff02f4098d5ad9405aa2be
Reviewed-on: http://gerrit.cloudera.org:8080/20629
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
Reviewed-by: Michael Smith <michael.smith@cloudera.com>
This commit is contained in:
Michael Smith
2023-10-26 23:14:53 +00:00
committed by Michael Smith
parent 12325eb7ec
commit 472dea5c3c

View File

@@ -22,11 +22,21 @@
export IMPALA_HOME=/opt/impala
# Since the Java location includes the CPU architecture, use a glob to find Java home
export JAVA_HOME=$(compgen -G "/usr/lib/jvm/java-8-openjdk*")
# Add directories containing dynamic libraries required by the daemons that
# are not on the system library paths.
export LD_LIBRARY_PATH=/opt/impala/lib
LD_LIBRARY_PATH+=:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/
LD_LIBRARY_PATH+=:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/
# Given JAVA_HOME, find libjvm.so and add them to LD_LIBRARY_PATH.
# JAVA_HOME could be a symlink, so follow symlinks when looking for the libraries
LIB_JVM_DIR=$(find -L "${JAVA_HOME}" -name libjvm.so | head -1 | xargs dirname)
if [[ -z $LIB_JVM_DIR ]]; then
echo "ERROR: Could not find libjvm.so in ${JAVA_HOME}"
exit 1
fi
LD_LIBRARY_PATH+=:${LIB_JVM_DIR}
echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"