From 5a4bdf2c9fd1693ad3b90dbbd3bcb589ed15c101 Mon Sep 17 00:00:00 2001 From: Till Rohrmann Date: Tue, 10 Jul 2018 11:24:26 +0200 Subject: [PATCH] [FLINK-9819] Add startup scripts for standalone job cluster entry point This closes #6316. --- flink-dist/pom.xml | 6 ++ .../src/main/flink-bin/bin/flink-console.sh | 6 +- .../src/main/flink-bin/bin/flink-daemon.sh | 6 +- .../src/main/flink-bin/bin/standalone-job.sh | 66 +++++++++++++++++++ 4 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 flink-dist/src/main/flink-bin/bin/standalone-job.sh diff --git a/flink-dist/pom.xml b/flink-dist/pom.xml index 8ae6d70c7ca..8bfbace5a26 100644 --- a/flink-dist/pom.xml +++ b/flink-dist/pom.xml @@ -122,6 +122,12 @@ under the License. ${project.version} + + org.apache.flink + flink-container_${scala.binary.version} + ${project.version} + + org.apache.flink flink-statebackend-rocksdb_${scala.binary.version} diff --git a/flink-dist/src/main/flink-bin/bin/flink-console.sh b/flink-dist/src/main/flink-bin/bin/flink-console.sh index 3ccbbd0b99d..64a428dfa6e 100644 --- a/flink-dist/src/main/flink-bin/bin/flink-console.sh +++ b/flink-dist/src/main/flink-bin/bin/flink-console.sh @@ -19,7 +19,7 @@ # Start a Flink service as a console application. Must be stopped with Ctrl-C # or with SIGTERM by kill or the controlling process. -USAGE="Usage: flink-console.sh (jobmanager|taskmanager|historyserver|zookeeper) [args]" +USAGE="Usage: flink-console.sh (jobmanager|taskmanager|taskexecutor|zookeeper|historyserver|standalonesession|standalonejob) [args]" SERVICE=$1 ARGS=("${@:2}") # get remaining arguments as array @@ -54,6 +54,10 @@ case $SERVICE in CLASS_TO_RUN=org.apache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint ;; + (standalonejob) + CLASS_TO_RUN=org.apache.flink.container.entrypoint.StandaloneJobClusterEntryPoint + ;; + (*) echo "Unknown service '${SERVICE}'. $USAGE." exit 1 diff --git a/flink-dist/src/main/flink-bin/bin/flink-daemon.sh b/flink-dist/src/main/flink-bin/bin/flink-daemon.sh index b337a1770c1..3a9f61dcb41 100644 --- a/flink-dist/src/main/flink-bin/bin/flink-daemon.sh +++ b/flink-dist/src/main/flink-bin/bin/flink-daemon.sh @@ -18,7 +18,7 @@ ################################################################################ # Start/stop a Flink daemon. -USAGE="Usage: flink-daemon.sh (start|stop|stop-all) (jobmanager|taskmanager|zookeeper|historyserver) [args]" +USAGE="Usage: flink-daemon.sh (start|stop|stop-all) (jobmanager|taskmanager|taskexecutor|zookeeper|historyserver|standalonesession|standalonejob) [args]" STARTSTOP=$1 DAEMON=$2 @@ -54,6 +54,10 @@ case $DAEMON in CLASS_TO_RUN=org.apache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint ;; + (standalonejob) + CLASS_TO_RUN=org.apache.flink.container.entrypoint.StandaloneJobClusterEntryPoint + ;; + (*) echo "Unknown daemon '${DAEMON}'. $USAGE." exit 1 diff --git a/flink-dist/src/main/flink-bin/bin/standalone-job.sh b/flink-dist/src/main/flink-bin/bin/standalone-job.sh new file mode 100644 index 00000000000..586a8bacb00 --- /dev/null +++ b/flink-dist/src/main/flink-bin/bin/standalone-job.sh @@ -0,0 +1,66 @@ +#!/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. +################################################################################ + +# Start/stop a Flink JobManager. +USAGE="Usage: standalone-job.sh ((start|start-foreground))|stop" + +STARTSTOP=$1 +ENTRY_POINT_NAME="standalonejob" + +ARGS=("${@:2}") + +if [[ $STARTSTOP != "start" ]] && [[ $STARTSTOP != "start-foreground" ]] && [[ $STARTSTOP != "stop" ]] || [[ -z JOB_CLASSNAME ]]; then + echo $USAGE + exit 1 +fi + +bin=`dirname "$0"` +bin=`cd "$bin"; pwd` + +. "$bin"/config.sh + +if [[ $STARTSTOP == "start" ]] || [[ $STARTSTOP == "start-foreground" ]]; then + if [ ! -z "${FLINK_JM_HEAP_MB}" ] && [ "${FLINK_JM_HEAP}" == 0 ]; then + echo "used deprecated key \`${KEY_JOBM_MEM_MB}\`, please replace with key \`${KEY_JOBM_MEM_SIZE}\`" + else + flink_jm_heap_bytes=$(parseBytes ${FLINK_JM_HEAP}) + FLINK_JM_HEAP_MB=$(getMebiBytes ${flink_jm_heap_bytes}) + fi + + if [[ ! ${FLINK_JM_HEAP_MB} =~ $IS_NUMBER ]] || [[ "${FLINK_JM_HEAP_MB}" -lt "0" ]]; then + echo "[ERROR] Configured memory size is not a valid value. Please set '${KEY_JOBM_MEM_SIZE}' in ${FLINK_CONF_FILE}." + exit 1 + fi + + if [ "${FLINK_JM_HEAP_MB}" -gt "0" ]; then + export JVM_ARGS="$JVM_ARGS -Xms"$FLINK_JM_HEAP_MB"m -Xmx"$FLINK_JM_HEAP_MB"m" + fi + + # Add cluster entry point specific JVM options + export FLINK_ENV_JAVA_OPTS="${FLINK_ENV_JAVA_OPTS} ${FLINK_ENV_JAVA_OPTS_JM}" + + # Startup parameters + ARGS+=("--configDir" "${FLINK_CONF_DIR}") +fi + +if [[ $STARTSTOP == "start-foreground" ]]; then + exec "${FLINK_BIN_DIR}"/flink-console.sh $ENTRY_POINT_NAME "${ARGS[@]}" +else + "${FLINK_BIN_DIR}"/flink-daemon.sh $STARTSTOP $ENTRY_POINT_NAME "${ARGS[@]}" +fi -- GitLab