[FLINK-5672] [scripts] Add special cases for a local setup in cluster start/stop scripts
This way, if all slaves refer to "localhost", we do not require ssh at all. This closes #3298 Project: http://git-wip-us.apache.org/repos/asf/flink/repo Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/83061ad0 Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/83061ad0 Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/83061ad0 Branch: refs/heads/master Commit: 83061ad0f34ab158b6aa7924bba1aa35695817f4 Parents: d6a1551 Author: Nico Kruber <[email protected]> Authored: Mon Feb 13 15:33:23 2017 +0100 Committer: Stephan Ewen <[email protected]> Committed: Fri Apr 21 13:30:29 2017 +0200 ---------------------------------------------------------------------- flink-dist/src/main/flink-bin/bin/config.sh | 33 +++++++++++++++++++- .../src/main/flink-bin/bin/start-cluster.sh | 14 ++------- .../src/main/flink-bin/bin/stop-cluster.sh | 14 ++------- 3 files changed, 36 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flink/blob/83061ad0/flink-dist/src/main/flink-bin/bin/config.sh ---------------------------------------------------------------------- diff --git a/flink-dist/src/main/flink-bin/bin/config.sh b/flink-dist/src/main/flink-bin/bin/config.sh index dbfdd0e..a16529c 100755 --- a/flink-dist/src/main/flink-bin/bin/config.sh +++ b/flink-dist/src/main/flink-bin/bin/config.sh @@ -410,16 +410,47 @@ readSlaves() { SLAVES=() + SLAVES_ALL_LOCALHOST=true GOON=true while $GOON; do read line || GOON=false HOST=$( extractHostName $line) - if [ -n "$HOST" ]; then + if [ -n "$HOST" ] ; then SLAVES+=(${HOST}) + if [ "${HOST}" != "localhost" ] ; then + SLAVES_ALL_LOCALHOST=false + fi fi done < "$SLAVES_FILE" } +# starts or stops TMs on all slaves +# TMSlaves start|stop +TMSlaves() { + CMD=$1 + + readSlaves + + if [ ${SLAVES_ALL_LOCALHOST} = true ] ; then + # all-local setup + for slave in ${SLAVES[@]}; do + "${FLINK_BIN_DIR}"/taskmanager.sh "${CMD}" + done + else + # non-local setup + # Stop TaskManager instance(s) using pdsh (Parallel Distributed Shell) when available + command -v pdsh >/dev/null 2>&1 + if [[ $? -ne 0 ]]; then + for slave in ${SLAVES[@]}; do + ssh -n $FLINK_SSH_OPTS $slave -- "nohup /bin/bash -l \"${FLINK_BIN_DIR}/taskmanager.sh\" \"${CMD}\" &" + done + else + PDSH_SSH_ARGS="" PDSH_SSH_ARGS_APPEND=$FLINK_SSH_OPTS pdsh -w $(IFS=, ; echo "${SLAVES[*]}") \ + "nohup /bin/bash -l \"${FLINK_BIN_DIR}/taskmanager.sh\" \"${CMD}\"" + fi + fi +} + useOffHeapMemory() { [[ "`echo ${FLINK_TM_OFFHEAP} | tr '[:upper:]' '[:lower:]'`" == "true" ]] } http://git-wip-us.apache.org/repos/asf/flink/blob/83061ad0/flink-dist/src/main/flink-bin/bin/start-cluster.sh ---------------------------------------------------------------------- diff --git a/flink-dist/src/main/flink-bin/bin/start-cluster.sh b/flink-dist/src/main/flink-bin/bin/start-cluster.sh index 7611189..5d2f92b 100755 --- a/flink-dist/src/main/flink-bin/bin/start-cluster.sh +++ b/flink-dist/src/main/flink-bin/bin/start-cluster.sh @@ -49,15 +49,5 @@ else fi shopt -u nocasematch -# Start TaskManager instance(s) using pdsh (Parallel Distributed Shell) when available -readSlaves - -command -v pdsh >/dev/null 2>&1 -if [[ $? -ne 0 ]]; then - for slave in ${SLAVES[@]}; do - ssh -n $FLINK_SSH_OPTS $slave -- "nohup /bin/bash -l \"${FLINK_BIN_DIR}/taskmanager.sh\" start &" - done -else - PDSH_SSH_ARGS="" PDSH_SSH_ARGS_APPEND="${FLINK_SSH_OPTS}" pdsh -w $(IFS=, ; echo "${SLAVES[*]}") \ - "nohup /bin/bash -l \"${FLINK_BIN_DIR}/taskmanager.sh\" start" -fi +# Start TaskManager instance(s) +TMSlaves start http://git-wip-us.apache.org/repos/asf/flink/blob/83061ad0/flink-dist/src/main/flink-bin/bin/stop-cluster.sh ---------------------------------------------------------------------- diff --git a/flink-dist/src/main/flink-bin/bin/stop-cluster.sh b/flink-dist/src/main/flink-bin/bin/stop-cluster.sh index bc86291..e04d2fa 100755 --- a/flink-dist/src/main/flink-bin/bin/stop-cluster.sh +++ b/flink-dist/src/main/flink-bin/bin/stop-cluster.sh @@ -22,18 +22,8 @@ bin=`cd "$bin"; pwd` . "$bin"/config.sh -# Stop TaskManager instance(s) using pdsh (Parallel Distributed Shell) when available -readSlaves - -command -v pdsh >/dev/null 2>&1 -if [[ $? -ne 0 ]]; then - for slave in ${SLAVES[@]}; do - ssh -n $FLINK_SSH_OPTS $slave -- "nohup /bin/bash -l \"${FLINK_BIN_DIR}/taskmanager.sh\" stop &" - done -else - PDSH_SSH_ARGS="" PDSH_SSH_ARGS_APPEND=$FLINK_SSH_OPTS pdsh -w $(IFS=, ; echo "${SLAVES[*]}") \ - "nohup /bin/bash -l \"${FLINK_BIN_DIR}/taskmanager.sh\" stop" -fi +# Stop TaskManager instance(s) +TMSlaves stop # Stop JobManager instance(s) shopt -s nocasematch
