前言
Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。
📣 1.何为Flink?
📣 2.关键组件
📣 3.集群部署
✨ 3.1 下载解压
✨ 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
📣 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
最后重启集群