前言

Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。

📣 1.何为Flink?

Flink快速部署集群,体验炸了!-LMLPHP

Flink快速部署集群,体验炸了!-LMLPHP

📣 2.关键组件

Flink快速部署集群,体验炸了!-LMLPHP

📣 3.集群部署

Flink快速部署集群,体验炸了!-LMLPHP

✨ 3.1 下载解压

Flink快速部署集群,体验炸了!-LMLPHP

✨ 3.2 JDK安装

3.环境变量导入
vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_391
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

##环境变量生效
source /etc/profile

##确认安装是否成功
                                                                         [root@flink01 conf]# java -version
java version "1.8.0_391"
Java(TM) SE Runtime Environment (build 1.8.0_391-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.391-b13, mixed mode)

✨ 3.3 host配置

✨ 3.4 配置文件

1.进入conf目录中,配置flink-conf.yaml文件

[root@flink01 opt]# cd /flink/flink-1.18.0/conf/
[root@flink01 conf]# ll
total 56
-rw-r--r-- 1 501 games 14142 Oct 18 20:07 flink-conf.yaml
-rw-r--r-- 1 501 games  2917 Oct 18 20:07 log4j-cli.properties
-rw-r--r-- 1 501 games  3184 Oct 18 20:07 log4j-console.properties
-rw-r--r-- 1 501 games  2041 Oct 18 20:07 log4j-session.properties
-rw-r--r-- 1 501 games  2708 Oct 18 20:07 log4j.properties
-rw-r--r-- 1 501 games  2865 Oct 18 20:07 logback-console.xml
-rw-r--r-- 1 501 games  1550 Oct 18 20:07 logback-session.xml
-rw-r--r-- 1 501 games  2314 Oct 18 20:07 logback.xml
-rw-r--r-- 1 501 games    15 Oct 24  2022 masters
-rw-r--r-- 1 501 games    10 Oct 18 20:07 workers
-rw-r--r-- 1 501 games  1434 Oct 18 20:07 zoo.cfg

[root@flink01 conf]# vi flink-conf.yaml

# jobManager 的IP地址
jobmanager.rpc.address: flink01

# 每个TaskManager 提供的任务 slots 数量大小
# 它的意思是当前task能够同时执行的线程数量 (实际生产环境建议是CPU核心-1)
taskmanager.numberOfTaskSlots: 2


jobmanager.rpc.address: node01 JobManager地址
jobmanager.rpc.port: 6123 JobManagerRPC通信端口
jobmanager.heap.size: 1024m JobManager所能使用的堆内存大小
taskmanager.heap.size: 1024m TaskManager所能使用的堆内存大小
taskmanager.numberOfTaskSlots: 2 TaskManager管理的TaskSlot个数,依据当前物理机的
核心数来配置,一般预留出一部分核心(25%)给系统及其他进程使用,一个slot对应一个core。如果
core支持超线程,那么slot个数*2
rest.port: 8081 指定WebUI的访问端口   --单节点放开此选项即可

注意:

flink01 jobmanager.rpc.address为flink01
flink02 jobmanager.rpc.address为flink01
flink03 jobmanager.rpc.address为flink01

2.配置masters文件
flink01\flink02\flink03节点均修改为:

#localhost:8081
flink01:8081

3.配置workers文件
flink01\flink02\flink03节点均修改为:
#localhost
flink02
flink03

✨ 3.5 环境变量

✨ 3.6 启动集群

启动:
start-cluster.sh

[root@flink01 ~]# start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host flink01.
root@flink02's password: 
Starting taskexecutor daemon on host flink02.
root@flink03's password: 
Starting taskexecutor daemon on host flink03.

[root@flink01 ~]# jps
3525 Jps
3439 StandaloneSessionClusterEntrypoint

[root@flink02 ~]# jps
1665 Jps

[root@flink03 ~]# jps
1645 Jps

停止:
stop-cluster.sh

[root@flink01 conf]# stop-cluster.sh
root@flink02's password: 
Stopping taskexecutor daemon (pid: 2225) on host flink02.
root@flink03's password: 
Stopping taskexecutor daemon (pid: 2205) on host flink03.
Stopping standalonesession daemon (pid: 4370) on host flink01.

可视化界面
http://192.168.3.15:18080/#/overview

Flink快速部署集群,体验炸了!-LMLPHP

📣 4.报错处理

1.SSH服务异常
[root@flink01 ~]# start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host flink01.
/flink/flink-1.18.0/bin/config.sh: line 525: ssh: command not found
/flink/flink-1.18.0/bin/config.sh: line 525: ssh: command not found

yum install -y openssh-clients openssh-server initscripts net-tools
netstat -anp | grep 22    --查看端口

systemctl start sshd
[root@flink02 ~]# netstat -lnput |grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      333/sshd            
tcp6       0      0 :::22                   :::*                    LISTEN      333/sshd   


2.Flink web UI 打开不了解决办法
systemctl status firewalld.service查看防火墙状态,看是否是inactive
如果防火墙没有问题还开不了,看flink/conf/flink-conf.yaml里面的 rest.bind-address 参数 改为0.0.0.0
最后重启集群
12-24 02:59