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.addresshistoryserver.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(代码片段

HadoopHDFS HA高可用

生产环境下hadoop HA集群及Hbase HA集群配置

Hadoop HA 配置文件以及自动化Shell脚本开关HA集群

HA集群配置

HDFS HA之手动高可用故障转移配置自动高可用故障转移配置配置YARN-HA集群