diff --git a/flink-dist/pom.xml b/flink-dist/pom.xml index 8ae6d70c7ca63208016f33ab9846ed6674d7bcd6..8bfbace5a269fade871b486b3af59652335ddae9 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 3ccbbd0b99d5b86387c05e2b5c8ce935a941060b..64a428dfa6e0ec62b3b850b820c9c95115803815 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 b337a1770c1fabce3085bd95323ca0f1ae30193b..3a9f61dcb41e0855a2f2e286816c64e804471319 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 0000000000000000000000000000000000000000..586a8bacb00ae6fca73fd282555803839780f889 --- /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