[FLINK-9819] Add startup scripts for standalone job cluster entry point This closes #6316.
Project: http://git-wip-us.apache.org/repos/asf/flink/repo Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/5a4bdf2c Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/5a4bdf2c Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/5a4bdf2c Branch: refs/heads/master Commit: 5a4bdf2c9fd1693ad3b90dbbd3bcb589ed15c101 Parents: 8f467c1 Author: Till Rohrmann <trohrm...@apache.org> Authored: Tue Jul 10 11:24:26 2018 +0200 Committer: Till Rohrmann <trohrm...@apache.org> Committed: Fri Jul 13 18:01:38 2018 +0200 ---------------------------------------------------------------------- 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(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flink/blob/5a4bdf2c/flink-dist/pom.xml ---------------------------------------------------------------------- diff --git a/flink-dist/pom.xml b/flink-dist/pom.xml index 8ae6d70..8bfbace 100644 --- a/flink-dist/pom.xml +++ b/flink-dist/pom.xml @@ -124,6 +124,12 @@ under the License. <dependency> <groupId>org.apache.flink</groupId> + <artifactId>flink-container_${scala.binary.version}</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> <artifactId>flink-statebackend-rocksdb_${scala.binary.version}</artifactId> <version>${project.version}</version> </dependency> http://git-wip-us.apache.org/repos/asf/flink/blob/5a4bdf2c/flink-dist/src/main/flink-bin/bin/flink-console.sh ---------------------------------------------------------------------- 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 3ccbbd0..64a428d 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 http://git-wip-us.apache.org/repos/asf/flink/blob/5a4bdf2c/flink-dist/src/main/flink-bin/bin/flink-daemon.sh ---------------------------------------------------------------------- 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 b337a17..3a9f61d 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 http://git-wip-us.apache.org/repos/asf/flink/blob/5a4bdf2c/flink-dist/src/main/flink-bin/bin/standalone-job.sh ---------------------------------------------------------------------- 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 0000000..586a8ba --- /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