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

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

浙公网安备 33010602011771号