flink-1.17.1集群部署(minio做元数据存储)

环境:
OS:Centos 7
flink:flink-1.17.1-bin-scala_2.12.tgz
zookeeper:3.7.0
jdk:1.8
架构: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@flink-113 ~]# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

 

2.下载flink
下载地址
wget https://archive.apache.org/dist/flink/flink-1.17.1/flink-1.17.1-bin-scala_2.12.tgz

 

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

 

4.部署minio做元数据共享存储
minio部署参考如下链接

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

web界面创建好bucket,名称叫:flink-ha

 

image

 

 

 

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

jobmanager.rpc.address: 192.168.1.134
jobmanager.rpc.port: 6123
jobmanager.bind-host: 0.0.0.0
jobmanager.memory.process.size: 1600m

taskmanager.bind-host: 0.0.0.0
taskmanager.host: 192.168.1.134
taskmanager.memory.process.size: 1728m
taskmanager.numberOfTaskSlots: 10
parallelism.default: 1

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

# MinIO S3认证参数
s3.endpoint: http://192.168.12.87:9000
s3.access-key: admin
s3.secret-key: admin@123
s3.path-style-access: true


execution.checkpointing.interval: 3min execution.checkpointing.max
-concurrent-checkpoints: 1 execution.checkpointing.timeout: 10min state.backend.type: rocksdb state.checkpoints.dir: s3://flink-ha/checkpoints/ state.savepoints.dir: s3://flink-ha/savepoints/ state.backend.incremental: true jobmanager.execution.failover-strategy: region rest.port: 8081 rest.address: 0.0.0.0 rest.bind-address: 0.0.0.0

 

 

 

6.修改配置文件masters
vi /opt/flink-1.17.1/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.17.1/conf/workers
192.168.1.134
192.168.1.135
192.168.1.113

 

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

 

9.修改另外2个节点的配置文件
vi /opt/flink-1.17.1/conf/flink-conf.yaml
将相应的ip地址修改为本机的IP地址

 

10.启动集群
启动方式1:start-cluster.sh
启动,这里启动命令只在一个master节点节点上执行即可,他会自动去启动其他节点的JM和TM服务的
我这里在192.168.1.134这台机器上执行
[root@flink-134 conf]# /opt/flink-1.17.1/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. ##按ctrl+c,继续往下执行
Starting taskexecutor daemon on host flink-134.
Starting taskexecutor daemon on host flink-135.
^CKilled by signal 2. ##按ctrl+c,继续往下执行
Starting taskexecutor daemon on host flink-113.

停止命令
/opt/flink-1.17.1/bin/stop-cluster.sh

 

启动方式2:jobmanager.sh
192.168.1.134启动JM
/opt/flink-1.17.1/bin/jobmanager.sh start 192.168.1.134 8081

192.168.1.135启动JM
/opt/flink-1.17.1/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.17.1/bin/taskmanager.sh start

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

 

11.验证集群状态
192.168.1.134
[root@flink-134 conf]# jps
24819 StandaloneSessionClusterEntrypoint
25301 TaskManagerRunner

192.168.1.135
[root@flink-135 log]# jps
11105 TaskManagerRunner
8585 StandaloneSessionClusterEntrypoint

[root@flink-113 bin]# jps
7868 TaskManagerRunner

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

 

image

 

 

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