脚本主要功能
该脚本用于启动 Flink 的 JobManager 和 TaskManager 实例。根据配置文件中的高可用性模式(HA Mode),决定是否以高可用模式启动。
脚本加上中文注释
bin=`dirname "$0"`
bin=`cd "$bin"; pwd`
. "$bin"/config.sh
# 获取脚本所在路径并转换为绝对路径
# 导入配置文件
# 启动 JobManager 实例
shopt -s nocasematch
if [[ $HIGH_AVAILABILITY == "zookeeper" ]]; then
# 高可用模式
readMasters
echo "Starting HA cluster with ${#MASTERS[@]} masters."
for ((i=0;i<${#MASTERS[@]};++i)); do
master=${MASTERS[i]}
webuiport=${WEBUIPORTS[i]}
if [ ${MASTERS_ALL_LOCALHOST} = true ] ; then
"${FLINK_BIN_DIR}"/jobmanager.sh start "${master}" "${webuiport}"
else
ssh -n $FLINK_SSH_OPTS $master -- "nohup /bin/bash -l \"${FLINK_BIN_DIR}/jobmanager.sh\" start ${master} ${webuiport} &"
fi
done
else
echo "Starting cluster."
# 在本机启动单个 JobManager
"$FLINK_BIN_DIR"/jobmanager.sh start
fi
shopt -u nocasematch
# 启动 TaskManager 实例
TMWorkers start
该脚本多种用法及其代码示例
- 默认模式下启动 Flink 集群:
./start-cluster.sh
- 使用 ZooKeeper 作为高可用性模式启动 Flink 集群:
HIGH_AVAILABILITY=zookeeper ./start-cluster.sh