flink-1.12.2 ha 集群配置
网上很多都是旧版的配置,很多配置项名称已经改变。本文是3个节点(同时也是 hadoop 集群节点)组成的 Flink-1.12.2版本的高可用集群配置,亲测可用:
参考:
Flink HistoryServer配置(简单三步完成)
Flink HA配置
每台机器内容如下:
/etc/profile.d/hacl-flinkcl-env.sh (使生效)
export JAVA_HOME=/usr/local/java/jdk1.8.0_271
export HADOOP_HOME=/opt/hacl/hadoop-3.3.0
export HADOOP_CLASSPATH=`$HADOOP_HOME/bin/hadoop classpath`export FLINK_DATA_ROOT=/hacl/flink-ha/flinkcl
export FLINK_HOME=/opt/hacl/flink-1.12.2
export PATH=$PATH:$FLINK_HOME/bin
$FLINK_HOME/conf/masters
flink01.pepstack.com:8081
flink02.pepstack.com:8081
flink03.pepstack.com:8081
$FLINK_HOME/conf/workers
flink01.pepstack.com
flink02.pepstack.com
flink03.pepstack.com
$FLINK_HOME/conf/flink-conf.yaml
在3个节点复制此文件,注意:
jobmanager.rpc.address 和 historyserver.web.address 在每个节点要配置为该节点的hostname。
yarn.application-attempts (=10) 需要大于 yarn.resourcemanager.am.max-attempts (=5, 配置在: $HADOOP_CONF_DIR/yarn-site.xml)
然后手工创建目录:
mkdir -p /hacl/flink-ha/flinkcl/logs
mkdir -p /hacl/flink-ha/flinkcl/tmp/history
在其中一个节点上启动 flink 集群:
$FLINK_HOME/bin/start-cluster.sh
在全部3个节点可用看到下面的进程,说明集群启动成功:
StandaloneSessionClusterEntrypoint
TaskManagerRunner
然后分别在3个节点都启动 historyserver:
$FLINK_HOME/bin/historyserver.sh start
注意,每次启动 historyserver,都需要手工创建 historyserver.web.tmpdir 目录,这里是:
mkdir -p /hacl/flink-ha/flinkcl/tmp/history
最后出现进程,说明启动成功:
HistoryServer
可用到日志目录下查看是否错误:
/hacl/flink-ha/flinkcl/logs
上面的配置依赖于 hadoop,yarn。所以首先 hadoop 集群必须正确安装和启动。例如:HADOOP_CONF_DIR 环境变量指向 /opt/hadoop-3.3.0/etc/hadoop。