flink-1.12.2 ha 集群配置
Posted 车斗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flink-1.12.2 ha 集群配置相关的知识,希望对你有一定的参考价值。
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
jobmanager.memory.process.size: 2g
taskmanager.memory.process.size: 16g
parallelism.default: 1
fs.default-scheme: hdfs://hacl
io.tmp.dirs: /hacl/flink-ha/flinkcl/tmp,/hacl/flink-ha/flinkcl/tmp,/hacl/flink-ha/flinkcl/tmp,/hacl/flink-ha/flinkcl/tmp
jobmanager.archive.fs.dir: hdfs:///flink-ha/flinkcl/completed-jobs
jobmanager.execution.failover-strategy: region
jobmanager.rpc.address: flink01.pepstack.com
jobmanager.rpc.port: 6123
taskmanager.numberOfTaskSlots: 20
env.hadoop.conf.dir: $HADOOP_CONF_DIR
env.log.dir: /hacl/flink-ha/flinkcl/logs
env.log.max: 10
env.yarn.conf.dir: $HADOOP_CONF_DIR
state.backend: filesystem
state.checkpoints.dir: hdfs://hacl/flink-ha/checkpoints
state.savepoints.dir: hdfs://hacl/flink-ha/savepoints
high-availability: ZOOKEEPER
high-availability.cluster-id: /flinkcl
high-availability.storageDir: hdfs:///flink-ha/flinkcl
high-availability.zookeeper.path.root: /flink-ha
high-availability.zookeeper.quorum: flink01.pepstack.com:2181,flink02.pepstack.com:2181,flink03.pepstack.com:2181
high-availability.zookeeper.client.acl: open
yarn.application-attempts: 10
historyserver.archive.fs.dir: hdfs:///flink-ha/flinkcl/completed-jobs
historyserver.web.address: flink01.pepstack.com
historyserver.web.port: 8082
historyserver.web.ssl.enabled: false
historyserver.web.tmpdir: /hacl/flink-ha/flinkcl/tmp/history
在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。
以上是关于flink-1.12.2 ha 集群配置的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端Eureka 服务信息Eureka 发现管理Eureka 安全配置Eureka-HA(高可用) 机制Eur(代码片段