Files
datawave/docker/stack/accumulo-env.sh
9b2b652221 Codex assisted: Replace Quickstart container with using the container… (#3856)
…s from NationalSecurityAgency/datawave-stack-docker-images

---------

Co-authored-by: Moriarty <[email protected]>
Co-authored-by: Claude Opus 5 <[email protected]>
2026-08-19 16:36:02 +00:00

50 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
ACCUMULO_LOG_DIR="${ACCUMULO_LOG_DIR:-${basedir}/logs}"
HADOOP_HOME="${HADOOP_HOME:-/usr/local/hadoop}"
HADOOP_CONF_DIR="${HADOOP_CONF_DIR:-/stack}"
ZOOKEEPER_HOME="${ZOOKEEPER_HOME:-/opt/zookeeper}"
ZK_JARS=$(find "${ZOOKEEPER_HOME}/lib" -maxdepth 1 -name '*.jar' \
-not -name '*slf4j*' -not -name '*log4j*' | paste -sd:)
# Put Accumulo's own libraries before an application-supplied classpath. The
# DataWave ingest distribution intentionally exports its full job classpath;
# prepending it would downgrade libraries required by the Accumulo launcher.
CLASSPATH="${conf}:${lib}/*:${HADOOP_CONF_DIR}:${ZOOKEEPER_HOME}/*:${ZK_JARS}:/usr/lib/hadoop/client/*${CLASSPATH:+:${CLASSPATH}}"
export CLASSPATH
read -r -a accumulo_initial_opts < <(echo "${ACCUMULO_JAVA_OPTS:-}")
JAVA_OPTS=(
'-XX:OnOutOfMemoryError=kill -9 %p'
'-XX:-OmitStackTraceInFastThrow'
'-Djava.net.preferIPv4Stack=true'
'-Dcom.google.protobuf.use_unsafe_pre22_gencode'
"-Daccumulo.native.lib.path=${lib}/native"
"${accumulo_initial_opts[@]}"
)
case "${cmd}" in
manager | master) JAVA_OPTS=('-Xmx512m' '-Xms512m' "${JAVA_OPTS[@]}") ;;
monitor) JAVA_OPTS=('-Xmx1g' '-Xms1g' "${JAVA_OPTS[@]}") ;;
gc) JAVA_OPTS=('-Xmx256m' '-Xms256m' "${JAVA_OPTS[@]}") ;;
tserver) JAVA_OPTS=('-Xmx1536m' '-Xms1536m' "${JAVA_OPTS[@]}") ;;
*) JAVA_OPTS=('-Xmx256m' '-Xms64m' "${JAVA_OPTS[@]}") ;;
esac
JAVA_OPTS=(
"-Daccumulo.log.dir=${ACCUMULO_LOG_DIR}"
"-Daccumulo.application=${cmd}${ACCUMULO_SERVICE_INSTANCE:-}_$(hostname)"
"-Daccumulo.metrics.service.instance=${ACCUMULO_SERVICE_INSTANCE:-}"
'-Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector'
"${JAVA_OPTS[@]}"
)
case "${cmd}" in
monitor | gc | manager | master | tserver)
JAVA_OPTS=('-Dlog4j.configurationFile=log4j2-service.properties' "${JAVA_OPTS[@]}")
;;
esac
export MALLOC_ARENA_MAX="${MALLOC_ARENA_MAX:-1}"
export LD_LIBRARY_PATH="${HADOOP_HOME}/lib/native:${LD_LIBRARY_PATH:-}"