You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ni...@apache.org on 2026/09/17 14:33:55 UTC

(atlas) 12/13: ATLAS-5408: Fix hook import classpath and logging in docker/minimal envs

This is an automated email from the ASF dual-hosted git repository.

nixonrodrigues pushed a commit to branch ATLAS-5409
in repository https://gitbox.apache.org/repos/asf/atlas.git

commit d5e3aff203b9a72f53841018358c7331834a62ee
Author: nixonrodrigues <nr...@cloudera.com>
AuthorDate: Thu Sep 17 16:44:22 2026 +0530

    ATLAS-5408: Fix hook import classpath and logging in docker/minimal envs
    
    HBase: ship commons-configuration 1.x in atlas-hbase-plugin-impl because
    import-hbase.sh excludes it from HBase lib while Hadoop still needs it when
    HADOOP_HOME/classpath is absent.
    
    Logging: create /var/log/atlas in atlas-base and mkdir -p ATLAS_LOG_DIR in
    import-hbase, import-hive, and import-kafka so logback can open import logs.
    
    Kafka: stop putting broker config and log4j jars on the import classpath to
    avoid broker log4j.properties writing to /server.log; default KAFKA_CONF to
    $KAFKA_HOME/config.
    
    Co-authored-by: Cursor <cu...@cursor.com>
---
 addons/hbase-bridge/pom.xml                    | 6 ++++++
 addons/hbase-bridge/src/bin/import-hbase.sh    | 2 ++
 addons/hive-bridge/src/bin/import-hive.sh      | 1 +
 addons/kafka-bridge/src/bin/import-kafka.sh    | 9 ++++++---
 dev-support/atlas-docker/Dockerfile.atlas-base | 3 +++
 5 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/addons/hbase-bridge/pom.xml b/addons/hbase-bridge/pom.xml
index 76ea8dbc1..0387bc991 100644
--- a/addons/hbase-bridge/pom.xml
+++ b/addons/hbase-bridge/pom.xml
@@ -582,6 +582,12 @@
                                             <artifactId>commons-configuration2</artifactId>
                                             <version>${commons-conf2.version}</version>
                                         </artifactItem>
+                                        <!-- Hadoop metrics use commons-configuration 1.x; excluded from HBASE_CP in import-hbase.sh -->
+                                        <artifactItem>
+                                            <groupId>commons-configuration</groupId>
+                                            <artifactId>commons-configuration</artifactId>
+                                            <version>1.10</version>
+                                        </artifactItem>
                                         <artifactItem>
                                             <groupId>org.apache.commons</groupId>
                                             <artifactId>commons-text</artifactId>
diff --git a/addons/hbase-bridge/src/bin/import-hbase.sh b/addons/hbase-bridge/src/bin/import-hbase.sh
index c92ff1907..f05bc8a8a 100644
--- a/addons/hbase-bridge/src/bin/import-hbase.sh
+++ b/addons/hbase-bridge/src/bin/import-hbase.sh
@@ -68,6 +68,7 @@ fi
 # log dir for applications
 ATLAS_LOG_DIR="${ATLAS_LOG_DIR:-/var/log/atlas}"
 export ATLAS_LOG_DIR
+mkdir -p "${ATLAS_LOG_DIR}"
 LOGFILE="$ATLAS_LOG_DIR/import-hbase.log"
 
 TIME=`date +%Y%m%d%H%M%s`
@@ -104,6 +105,7 @@ HBASE_CP="${HBASE_CONF}"
 
 # Multiple jars in HBASE_CP_EXCLUDE_LIST can be added using "\|" separator
 # Ex: HBASE_CP_EXCLUDE_LIST="commons-configuration-1."
+# commons-configuration 1.x is in atlas-hbase-plugin-impl (Hadoop needs it; Atlas uses configuration2).
 HBASE_CP_EXCLUDE_LIST="commons-configuration-1\|jersey-client"
 
 for i in "${HBASE_HOME}/lib/"*.jar "${HBASE_HOME}/lib/client-facing-thirdparty/"*.jar; do
diff --git a/addons/hive-bridge/src/bin/import-hive.sh b/addons/hive-bridge/src/bin/import-hive.sh
index eca58fab8..f230d65dd 100755
--- a/addons/hive-bridge/src/bin/import-hive.sh
+++ b/addons/hive-bridge/src/bin/import-hive.sh
@@ -63,6 +63,7 @@ fi
 # log dir for applications
 ATLAS_LOG_DIR="${ATLAS_LOG_DIR:-/var/log/atlas}"
 export ATLAS_LOG_DIR
+mkdir -p "${ATLAS_LOG_DIR}"
 LOGFILE="$ATLAS_LOG_DIR/import-hive.log"
 
 TIME=`date +%Y%m%d%H%M%s`
diff --git a/addons/kafka-bridge/src/bin/import-kafka.sh b/addons/kafka-bridge/src/bin/import-kafka.sh
index bcf22ebc1..a4f6389e8 100644
--- a/addons/kafka-bridge/src/bin/import-kafka.sh
+++ b/addons/kafka-bridge/src/bin/import-kafka.sh
@@ -70,6 +70,7 @@ fi
 # log dir for applications
 ATLAS_LOG_DIR="${ATLAS_LOG_DIR:-/var/log/atlas}"
 export ATLAS_LOG_DIR
+mkdir -p "${ATLAS_LOG_DIR}"
 LOGFILE="$ATLAS_LOG_DIR/import-kafka.log"
 
 TIME=`date +%Y%m%d%H%M%s`
@@ -78,7 +79,7 @@ TIME=`date +%Y%m%d%H%M%s`
 if [ ! -z "$KAFKA_CONF_DIR" ]; then
     KAFKA_CONF=$KAFKA_CONF_DIR
 elif [ ! -z "$KAFKA_HOME" ]; then
-    KAFKA_CONF="$KAFKA_HOME/conf"
+    KAFKA_CONF="$KAFKA_HOME/config"
 elif [ -e /etc/kafka/conf ]; then
     KAFKA_CONF="/etc/kafka/conf"
 else
@@ -102,9 +103,11 @@ if [ -z "$KAFKA_HOME" ]; then
     fi
 fi
 
-KAFKA_CP="${KAFKA_CONF}"
+# Do not add ${KAFKA_CONF} to the classpath: broker log4j.properties is picked up
+# automatically and writes to ${kafka.logs.dir}/server.log (i.e. /server.log when unset).
+KAFKA_CP=""
 
-for i in "${KAFKA_HOME}/libs/kafka-clients"*.jar "${KAFKA_HOME}/libs/slf4j-"*.jar  "${KAFKA_HOME}/libs/log4j-"*.jar "${KAFKA_HOME}/libs/commons-"*.jar "${KAFKA_HOME}/libs/jackson-module-jaxb-annotations"*.jar; do
+for i in "${KAFKA_HOME}/libs/kafka-clients"*.jar "${KAFKA_HOME}/libs/slf4j-"*.jar "${KAFKA_HOME}/libs/commons-"*.jar "${KAFKA_HOME}/libs/jackson-module-jaxb-annotations"*.jar; do
     KAFKA_CP="${KAFKA_CP}:$i"
 done
 
diff --git a/dev-support/atlas-docker/Dockerfile.atlas-base b/dev-support/atlas-docker/Dockerfile.atlas-base
index a7af42844..1c5aece9a 100644
--- a/dev-support/atlas-docker/Dockerfile.atlas-base
+++ b/dev-support/atlas-docker/Dockerfile.atlas-base
@@ -45,6 +45,9 @@ RUN groupadd atlas && \
     useradd -g hadoop -ms /bin/bash kafka && \
     mkdir -p /home/atlas/dist && \
     mkdir -p /home/atlas/scripts && \
+    mkdir -p /var/log/atlas && \
+    chown root:hadoop /var/log/atlas && \
+    chmod 775 /var/log/atlas && \
     chown -R atlas:atlas /home/atlas
 
 ENTRYPOINT [ "/bin/bash" ]