flink-1.20.5高可用部署

环境:
OS:Centos 7
flink:flink-1.20.5-bin-scala_2.12.tgz
zookeeper:3.7.0
架构:3 台机器,1 主2备 JobManager + 3 台同时做TaskManager
节点规划(你可以替换主机名/IP)
node1(192.168.1.134):JobManager(active) + zk
node2(192.168.1.135):JobManager(standby) + zk
node3(192.168.1.113):JobManager (standby) + zk

 

#####################################配置ssh免密###################################

不配置的话好像不能使用start-cluster.sh启动整个集群

1.修改主机名称
# 192.168.1.134
hostnamectl set-hostname flink-134
# 192.168.1.135
hostnamectl set-hostname flink-135
# 192.168.1.113
hostnamectl set-hostname flink-113

2.配置/etc/hosts
vi /etc/hosts
192.168.1.134 flink-134
192.168.1.135 flink-135
192.168.1.113 flink-113

3.配置免密
3.1.机器A:192.168.1.134 上操作
su - root
cd ~
ssh-keygen -t rsa
ssh-copy-id -i root@192.168.1.134
ssh-copy-id -i root@192.168.1.135
ssh-copy-id -i root@192.168.1.113

ssh 192.168.1.134 date
ssh 192.168.1.135 date
ssh 192.168.1.113 date

 

3.2.机器B:192.168.1.135 上操作
su - root
cd ~
ssh-keygen -t rsa
ssh-copy-id root@192.168.1.135
ssh-copy-id root@192.168.1.134
ssh-copy-id root@192.168.1.113


ssh 192.168.1.134 date
ssh 192.168.1.135 date
ssh 192.168.1.113 date


3.3.机器C:192.168.1.113 上操作
su - root
cd ~
ssh-keygen -t rsa
ssh-copy-id -i root@192.168.1.113
ssh-copy-id -i root@192.168.1.134
ssh-copy-id -i root@192.168.1.135

ssh 192.168.1.134 date
ssh 192.168.1.135 date
ssh 192.168.1.113 date

 

#####################################部署zookeeper#################################

高可用需要使用到zookeeper
部署参考如下链接
https://www.cnblogs.com/hxlasky/p/23477829

 

#####################################部署flink集群#################################
1.安装java环境
[root@localhost conf]# java -version
java version "17.0.20.1" 2026-08-18 LTS
Java(TM) SE Runtime Environment (build 17.0.20.1+1-LTS-4)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.20.1+1-LTS-4, mixed mode, sharing)

 

2.下载flink
下载地址
https://archive.apache.org/dist/flink

 

3.安装
在其中一个节点上安装,我这里是在192.168.1.134机器上安装
[root@localhost soft]#cd /soft
[root@localhost soft]#tar -xvf flink-1.20.5-bin-scala_2.12.tgz
[root@localhost soft]#mv flink-1.20.5 /opt/

 

4.采用minio做元数据存储
4.1 下载依赖包

 

cd /opt/flink-1.20.5/lib
wget https://repo1.maven.org/maven2/org/apache/flink/flink-s3-fs-hadoop/1.20.5/flink-s3-fs-hadoop-1.20.5.jar
wget https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-aws/3.3.4/hadoop-aws-3.3.4.jar

 

scp flink-s3-fs-hadoop-1.20.5.jar root@192.168.1.135:/opt/flink-1.20.5/lib/
scp flink-s3-fs-hadoop-1.20.5.jar root@192.168.1.113:/opt/flink-1.20.5/lib/

 

scp hadoop-aws-3.3.4.jar root@192.168.1.135:/opt/flink-1.20.5/lib/
scp hadoop-aws-3.3.4.jar root@192.168.1.113:/opt/flink-1.20.5/lib/

 

 

4.2 需要部署minio

可参考如下部署链接

https://www.cnblogs.com/hxlasky/p/18643317

 

4.3 minio创建bucket

flink-ha-20

 

image

 

 

 

5.修改配置
vi /opt/flink-1.20.5/conf/config.yaml
该文件注释的配置项太多,只修改如下配置项即可

下面以节点1(192.168.1.134)为例子,其他节点需要修改相应的IP

 

s3.endpoint: http://192.168.12.87:9000
s3.access-key: admin
s3.secret-key: admin@123
s3.path-style-access: true

jobmanager:
  bind-host: 0.0.0.0
  rpc:
    address: 192.168.1.134
    port: 6123
  memory:
    process:
      size: 1600m
  execution:
    failover-strategy: region

taskmanager:
  bind-host: 0.0.0.0
  host: 192.168.1.134
  numberOfTaskSlots: 2
  memory:
    process:
      size: 1728m

parallelism:
  default: 1

high-availability:
  type: zookeeper
  storageDir: s3://flink-ha-20/ha-storage/
  cluster-id: cluster_two
  zookeeper:
    quorum: 192.168.1.134:2182,192.168.1.135:2182,192.168.1.113:2182
    path.root: /flink20

execution:
  checkpointing:
    interval: 30s
    externalized-checkpoint-retention: RETAIN_ON_CANCELLATION
    max-concurrent-checkpoints: 1
    mode: EXACTLY_ONCE
    timeout: 10min

state:
  backend:
    type: rocksdb
    incremental: true
    checkpoints:
      dir: s3://flink-ha-20/checkpoints/
    savepoints:
      dir: s3://flink-ha-20/savepoints/

rest:
  address: 0.0.0.0
  port: 8081

 

 

红色部分在另外2个节点根据相应的ip进行修改 

 

 

6.修改配置文件masters
vi /opt/flink-1.20.5/conf/masters

192.168.1.134:8081
192.168.1.135:8081

这里写2个ip,组成一主一备,也可以写3个ip,组成1主2从
192.168.1.134:8081
192.168.1.135:8081
192.168.1.113:8081

 

7.修改配置文件workers
vi /opt/flink-1.20.5/conf/workers
192.168.1.134
192.168.1.135
192.168.1.113

 

5.将整个目录拷贝到另外两个节点
cd /opt/
scp -r flink-1.20.5 root@192.168.1.135:/opt/
scp -r flink-1.20.5 root@192.168.1.113:/opt/

 

6.修改另外2个节点的配置文件

vi /opt/flink-1.20.5/conf/config.yaml

将相应的ip地址修改为本机的IP地址

 

6.启动集群

启动方式1:start-cluster.sh
启动,这里启动命令只在一个master节点节点上执行即可,他会自动去启动其他节点的JM和TM服务的
/opt/flink-1.20.5/bin/start-cluster.sh
[root@flink-134 log]# /opt/flink-1.20.5/bin/start-cluster.sh
Starting HA cluster with 2 masters.
Starting standalonesession daemon on host flink-134.
Starting standalonesession daemon on host flink-135.

^CKilled by signal 2.
Starting taskexecutor daemon on host flink-134.
Starting taskexecutor daemon on host flink-135.

^CKilled by signal 2.
Starting taskexecutor daemon on host flink-113.

这里需要输入2次 Ctrl+c 才能全部启动完成

停止命令
[root@flink-134 log]# /opt/flink-1.20.5/bin/stop-cluster.sh
Stopping taskexecutor daemon (pid: 24161) on host flink-134.
Stopping taskexecutor daemon (pid: 15046) on host flink-135.
Stopping taskexecutor daemon (pid: 11524) on host flink-113.
Stopping standalonesession daemon (pid: 22773) on host flink-134.
Stopping standalonesession daemon (pid: 7052) on host flink-135.

 

启动方式2:jobmanager.sh

192.168.1.134启动JM
/opt/flink-1.20.5/bin/jobmanager.sh start 192.168.1.134 8081

192.168.1.135启动JM
/opt/flink-1.20.5/bin/jobmanager.sh start 192.168.1.135 8081

 

停止JM:
192.168.1.134
/opt/flink-1.20.5/bin/jobmanager.sh stop 192.168.1.134 8081
192.168.1.135
/opt/flink-1.20.5/bin/jobmanager.sh stop 192.168.1.135 8081

 

 

在192.168.1.134,192.168.1.135,192.168.1.113 三台分别启动 TM
启动TM
/opt/flink-1.20.5/bin/taskmanager.sh start

停止TM
/opt/flink-1.20.5/bin/taskmanager.sh stop

 

7.验证集群状态
192.168.1.134
[root@localhost opt]# jps
10816 TaskManagerRunner
10206 StandaloneSessionClusterEntrypoint

 

192.168.1.135
[root@host135 conf]# jps
25701 StandaloneSessionClusterEntrypoint
29341 TaskManagerRunner

 

192.168.1.113
[root@host113 opt]# jps
18239 TaskManagerRunner

 

8.WebUI 访问
任意一个 JM 地址:
http://192.168.1.134:8081
http://192.168.1.135:8081

 

image

 

 

posted @ 2026-11-02 10:32  slnngk  阅读(7)  评论(0)    收藏  举报