[FLINK-8682] [shell scripts] Make shell scripts work without SSH for local-only HA setups.
This allows users to set up HA testing on a local machine with multiple JobManagers without configuring SSH keys. Project: http://git-wip-us.apache.org/repos/asf/flink/repo Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/39711fb6 Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/39711fb6 Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/39711fb6 Branch: refs/heads/master Commit: 39711fb6f1d801e067e121803ea82b1c2742c956 Parents: 096bf80 Author: Stephan Ewen <[email protected]> Authored: Fri Feb 16 20:52:36 2018 +0100 Committer: Stephan Ewen <[email protected]> Committed: Sun Feb 18 22:24:35 2018 +0100 ---------------------------------------------------------------------- flink-dist/src/main/flink-bin/bin/config.sh | 5 +++++ flink-dist/src/main/flink-bin/bin/start-cluster.sh | 7 ++++++- flink-dist/src/main/flink-bin/bin/stop-cluster.sh | 14 ++++++++++---- 3 files changed, 21 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flink/blob/39711fb6/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 645e156..27b3912 100755 --- a/flink-dist/src/main/flink-bin/bin/config.sh +++ b/flink-dist/src/main/flink-bin/bin/config.sh @@ -446,6 +446,7 @@ readMasters() { MASTERS=() WEBUIPORTS=() + MASTERS_ALL_LOCALHOST=true GOON=true while $GOON; do read line || GOON=false @@ -461,6 +462,10 @@ readMasters() { else WEBUIPORTS+=(${WEBUIPORT}) fi + + if [ "${HOST}" != "localhost" ] ; then + MASTERS_ALL_LOCALHOST=false + fi fi done < "$MASTERS_FILE" } http://git-wip-us.apache.org/repos/asf/flink/blob/39711fb6/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 5bb123b..d0f4ff9 100755 --- a/flink-dist/src/main/flink-bin/bin/start-cluster.sh +++ b/flink-dist/src/main/flink-bin/bin/start-cluster.sh @@ -33,7 +33,12 @@ if [[ $HIGH_AVAILABILITY == "zookeeper" ]]; then for ((i=0;i<${#MASTERS[@]};++i)); do master=${MASTERS[i]} webuiport=${WEBUIPORTS[i]} - ssh -n $FLINK_SSH_OPTS $master -- "nohup /bin/bash -l \"${FLINK_BIN_DIR}/jobmanager.sh\" start cluster ${master} ${webuiport} &" + + if [ ${MASTERS_ALL_LOCALHOST} = true ] ; then + "${FLINK_BIN_DIR}"/jobmanager.sh start cluster "${master}" "${webuiport}" + else + ssh -n $FLINK_SSH_OPTS $master -- "nohup /bin/bash -l \"${FLINK_BIN_DIR}/jobmanager.sh\" start cluster ${master} ${webuiport} &" + fi done else http://git-wip-us.apache.org/repos/asf/flink/blob/39711fb6/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 cd243da..bcd97eb 100755 --- a/flink-dist/src/main/flink-bin/bin/stop-cluster.sh +++ b/flink-dist/src/main/flink-bin/bin/stop-cluster.sh @@ -33,11 +33,17 @@ if [[ $HIGH_AVAILABILITY == "zookeeper" ]]; then # HA Mode readMasters - for master in ${MASTERS[@]}; do - ssh -n $FLINK_SSH_OPTS $master -- "nohup /bin/bash -l \"${FLINK_BIN_DIR}/jobmanager.sh\" stop \"${FLIP6}\" &" - done + if [ ${MASTERS_ALL_LOCALHOST} = true ] ; then + for master in ${MASTERS[@]}; do + "$FLINK_BIN_DIR"/jobmanager.sh stop "${FLIP6}" + done + else + for master in ${MASTERS[@]}; do + ssh -n $FLINK_SSH_OPTS $master -- "nohup /bin/bash -l \"${FLINK_BIN_DIR}/jobmanager.sh\" stop \"${FLIP6}\" &" + done + fi else - "$FLINK_BIN_DIR"/jobmanager.sh stop "${FLIP6}" + "$FLINK_BIN_DIR"/jobmanager.sh stop "${FLIP6}" fi shopt -u nocasematch
