diff --git a/llap-server/bin/runLlapDaemon.sh b/llap-server/bin/runLlapDaemon.sh index 30a62f25dd..69642f4f71 100755 --- a/llap-server/bin/runLlapDaemon.sh +++ b/llap-server/bin/runLlapDaemon.sh @@ -27,6 +27,7 @@ set -x # LLAP_DAEMON_LOGGER - default is console # LLAP_DAEMON_LOG_DIR - defaults to /tmp # LLAP_DAEMON_TMP_DIR - defaults to /tmp +# LLAP_LOG4J2_PROPERTIES_FILE_NAME - defaults to llap-daemon-log4j2.properties # LLAP_DAEMON_LOG_FILE - # LLAP_DAEMON_CONF_DIR @@ -90,6 +91,10 @@ if [ "$LLAP_DAEMON_LOGFILE" = "" ]; then LLAP_DAEMON_LOG_FILE='llapdaemon.log' fi +if [ "LLAP_LOG4J2_PROPERTIES_FILE_NAME" = "" ]; then + LLAP_LOG4J2_PROPERTIES_FILE_NAME='llap-daemon-log4j2.properties' +fi + if [ "$LLAP_DAEMON_HEAPSIZE" = "" ]; then LLAP_DAEMON_HEAPSIZE=4096 fi @@ -121,7 +126,7 @@ if [ -n "$LLAP_DAEMON_TMP_DIR" ]; then export LLAP_DAEMON_OPTS="${LLAP_DAEMON_OPTS} -Djava.io.tmpdir=$LLAP_DAEMON_TMP_DIR" fi -LLAP_DAEMON_OPTS="${LLAP_DAEMON_OPTS} -Dlog4j.configurationFile=llap-daemon-log4j2.properties" +LLAP_DAEMON_OPTS="${LLAP_DAEMON_OPTS} -Dlog4j.configurationFile=${LLAP_LOG4J2_PROPERTIES_FILE_NAME}" LLAP_DAEMON_OPTS="${LLAP_DAEMON_OPTS} -Dllap.daemon.log.dir=${LLAP_DAEMON_LOG_DIR}" LLAP_DAEMON_OPTS="${LLAP_DAEMON_OPTS} -Dllap.daemon.log.file=${LLAP_DAEMON_LOG_FILE}" LLAP_DAEMON_OPTS="${LLAP_DAEMON_OPTS} -Dllap.daemon.root.logger=${LLAP_DAEMON_LOGGER}" diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapConstants.java b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapConstants.java index 112173cfed..b421e0bd51 100644 --- a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapConstants.java +++ b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapConstants.java @@ -19,6 +19,7 @@ @InterfaceAudience.Private public class LlapConstants { public static final String LOG4j2_PROPERTIES_FILE = "llap-daemon-log4j2.properties"; + public static final String LLAP_LOG4J2_PROPERTIES_FILE_NAME_ENV = "LLAP_LOG4J2_PROPERTIES_FILE_NAME"; public static final String LLAP_HADOOP_METRICS2_PROPERTIES_FILE = "hadoop-metrics2-llapdaemon.properties"; public static final String HADOOP_METRICS2_PROPERTIES_FILE = "hadoop-metrics2.properties"; diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java index 5474983892..41eca8f618 100644 --- a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java +++ b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java @@ -352,8 +352,11 @@ private static long determineXmxHeadroom( private static void initializeLogging(final Configuration conf) { long start = System.currentTimeMillis(); - URL llap_l4j2 = LlapDaemon.class.getClassLoader().getResource( - LlapConstants.LOG4j2_PROPERTIES_FILE); + String log4j2FileName = System.getenv(LlapConstants.LLAP_LOG4J2_PROPERTIES_FILE_NAME_ENV); + if (log4j2FileName == null || log4j2FileName.isEmpty()) { + log4j2FileName = LlapConstants.LOG4j2_PROPERTIES_FILE; + } + URL llap_l4j2 = LlapDaemon.class.getClassLoader().getResource(log4j2FileName); if (llap_l4j2 != null) { final boolean async = LogUtils.checkAndSetAsyncLogging(conf); // required for MDC based routing appender so that child threads can inherit the MDC context