blob: 3731b2310c0414a13a13cbb76b999cac816c6e02 [file] [log] [blame]
#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
source "$(dirname "$0")/uniffle-function.sh"
UNIFFLE_SHELL_EXECNAME="uniffle"
function uniffle_usage
{
uniffle_add_option "--daemon (start|status|stop)" "operate on a daemon"
uniffle_add_subcommand "client-cli" client "prints uniffle-cli args information"
uniffle_add_subcommand "admin-cli" admin "prints uniffle-admin args information"
uniffle_add_subcommand "shuffle-server" daemon "run the shuffle-server"
uniffle_add_subcommand "coordinator" daemon "run the coordinator"
uniffle_generate_usage "${UNIFFLE_SHELL_EXECNAME}" true
}
uniffle_parse_args "$@"
shift "${UNIFFLE_PARSE_COUNTER}"
function uniffle_cmd_case
{
subcmd=$1
shift
case ${subcmd} in
client-cli)
UNIFFLE_CLASSNAME=org.apache.uniffle.cli.UniffleCLI
;;
admin-cli)
UNIFFLE_CLASSNAME=org.apache.uniffle.cli.UniffleAdminCLI
;;
shuffle-server)
MAX_DIRECT_MEMORY_OPTS=""
if [ -n "${MAX_DIRECT_MEMORY_SIZE:-}" ]; then
MAX_DIRECT_MEMORY_OPTS="-XX:MaxDirectMemorySize=$MAX_DIRECT_MEMORY_SIZE"
fi
JVM_ARGS=" -server \
-Xmx${XMX_SIZE} \
-Xms${XMX_SIZE} \
${MAX_DIRECT_MEMORY_OPTS} \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:ParallelGCThreads=20 \
-XX:ConcGCThreads=5 \
-XX:InitiatingHeapOccupancyPercent=20 \
-XX:G1HeapRegionSize=32m \
-XX:+UnlockExperimentalVMOptions \
-XX:G1NewSizePercent=10 \
-XX:+PrintGC \
-XX:+PrintAdaptiveSizePolicy \
-XX:+PrintGCDateStamps \
-XX:+PrintGCTimeStamps \
-XX:+PrintGCDetails \
-Xloggc:${RSS_LOG_DIR}/gc-%t.log"
JAVA11_EXTRA_ARGS=" -XX:+IgnoreUnrecognizedVMOptions \
-Xlog:gc:tags,time,uptime,level"
UNIFFLE_OPTS="$UNIFFLE_OPTS $JVM_ARGS $JAVA11_EXTRA_ARGS"
UNIFFLE_SUBCMD_SUPPORT_DAEMONIZATION="true"
RSS_CONF_FILE="${RSS_CONF_DIR}/server.conf"
uniffle_add_classpath "${RSS_HOME}/jars/server/*"
UNIFFLE_CLASSNAME=org.apache.uniffle.server.ShuffleServer
;;
coordinator)
JVM_ARGS=" -server \
-Xmx${XMX_SIZE:-8g} \
-Xms${XMX_SIZE:-8g} \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:ParallelGCThreads=20 \
-XX:ConcGCThreads=5 \
-XX:InitiatingHeapOccupancyPercent=45 \
-XX:+PrintGC \
-XX:+PrintAdaptiveSizePolicy \
-XX:+PrintGCDateStamps \
-XX:+PrintGCTimeStamps \
-XX:+PrintGCDetails \
-Xloggc:${RSS_LOG_DIR}/gc-%t.log"
JAVA11_EXTRA_ARGS=" -XX:+IgnoreUnrecognizedVMOptions \
-Xlog:gc:tags,time,uptime,level"
UNIFFLE_OPTS="$UNIFFLE_OPTS $JVM_ARGS $JAVA11_EXTRA_ARGS"
UNIFFLE_SUBCMD_SUPPORT_DAEMONIZATION="true"
RSS_CONF_FILE="${RSS_CONF_DIR}/coordinator.conf"
uniffle_add_classpath "${RSS_HOME}/jars/coordinator/*"
UNIFFLE_CLASSNAME=org.apache.uniffle.coordinator.CoordinatorServer
;;
*)
UNIFFLE_CLASSNAME="${subcmd}"
if ! uniffle_validate_classname "${UNIFFLE_CLASSNAME}"; then
uniffle_exit_with_usage 1
fi
;;
esac
}
if [[ $# = 0 ]]; then
uniffle_exit_with_usage 1
fi
UNIFFLE_SUBCMD=$1
shift
case $UNIFFLE_SUBCMD in
--help|-help|-h)
uniffle_exit_with_usage 0
exit
;;
esac
UNIFFLE_SUBCMD_ARGS=("$@")
source "$(dirname "$0")/utils.sh"
UNIFFLE_SHELL_SCRIPT_DEBUG=false
load_rss_env
uniffle_java_setup
uniffle_basic_init
uniffle_finalize_uniffle_opts
CLASSPATH=""
JAR_DIR="${RSS_HOME}/jars"
for file in $(ls ${JAR_DIR}/cli/*.jar 2>/dev/null); do
CLASSPATH=$CLASSPATH:$file
done
HADOOP_DEPENDENCY="$("$HADOOP_HOME/bin/hadoop" classpath --glob)"
CLASSPATH=$CLASSPATH:$HADOOP_CONF_DIR:$HADOOP_DEPENDENCY
set +u
uniffle_cmd_case "${UNIFFLE_SUBCMD}" "${UNIFFLE_SUBCMD_ARGS[@]}"
uniffle_generic_java_subcmd_handler
set -u