部署Flink1.15集群
文章目录
一、准备工作
准备工作可以看我的另一篇文章
https://blog.csdn.net/weixin_44328192/article/details/126861349
本节不再复述
1、准备 3 台 Linux 机器
本文所用的系统为CentOS7.6
2、下载Java8、最好下载Java11(注意:这里为了照顾已经下载Java8的同志)
翻译下意思就是:
Java 8的支持现在已弃用
,并将在未来的版本中删除(FLINK-25247)。我们建议所有用户迁移到Java 11
。
在Flink docker镜像中的默认Java版本现在是Java 11 (Flink -25251)
。有些图像是用Java 8构建的,标记为“java8”。
对Scala 2.11的支持已经在FLINK-20845中移除
。所有(过渡地)依赖于Scala的Flink依赖都以它们所针对的Scala版本作为后缀,例如Flink -stream -scala_2.12。用户应该更新所有Flink依赖项,将“2.11”改为“2.12”。
Scala版本(2.11、2.12等)之间不是二进制兼容的。这也意味着,如果你正在升级到Flink Scala 2.12应用程序,你不能保证可以从Flink Scala 2.11应用程序的保存点恢复。这取决于您在应用程序中使用的数据类型。
Scala Shell/REPL已经在FLINK-24360中被移除。
3、安装 Hadoop 集群
Hadoop 建议选择 Hadoop 2.7.5 以上版本
二、下载安装Flink
这一节看https://blog.csdn.net/weixin_44328192/article/details/126906987
本文用的Flink的版本号为1.15.2
最后的配置和启动要回来看本篇文章
三、部署集群
Flink 是典型的 Master-Slave 架构的分布式数据处理框架,其中 Master 角色对应着
JobManager,Slave 角色则对应 TaskManager。我们对三台节点服务器的角色分配如表 所示
1、修改配置文件
①修改masters文件
vim masters
bigdata01:8081
这样就指定了bigdata01为 JobManager 节点。
②修改 workers 文件,将另外两台节点服务器添加为本 Flink 集群的 TaskManager 节点。
vim workers
bigdata02
bigdata03
这样就指定了 bigdata02和 bigdata03为 TaskManager 节点。
③配置flink-conf.yaml
# master地址
jobmanager.rpc.address: bigdata01
# master端口,不用改
jobmanager.rpc.port: 6123
# master地址绑定设置(master节点参数)
jobmanager.bind-host: 0.0.0.0
# worker地址绑定设置
taskmanager.bind-host: 0.0.0.0
# worker地址(注意:要改成每个worker节点的主机名)
taskmanager.host: localhost
# worker槽位数设置,默认为 1
taskmanager.numberOfTaskSlots: 2
# 默认并行度,默认为 1
parallelism.default: 3
# WEB UI 端口(master节点参数) 放开注释即可
rest.port: 8081
# WEB UI 管理地址
rest.address: bigdata01
# WEB UI 地址绑定设置,想让外部访问,可以设置具体的IP,或者直接设置成“0.0.0.0”(master节点参数)
rest.bind-address: 0.0.0.0
# IO临时目录,默认:/tmp
io.tmp.dirs: /opt/module/flink-1.15.2/tmp
# 集群节点进程ID存放目录,默认:/tmp
env.pid.dir: /opt/module/flink-1.15.2/pids
# Job文件目录(master节点参数)
web.upload.dir: /opt/module/flink-1.15.2/usrlib
另外,在 flink-conf.yaml 文件中还可以对集群中的 JobManager 和 TaskManager 组件
进行优化配置,主要配置项如下:
(1)jobmanager.memory.process.size:对 JobManager 进程可使用到的全部内存进行配置,包括 JVM 元空间和其他开销,默认为 1600M,可以根据集群规模进行适当调整。
(2)taskmanager.memory.process.size:对 TaskManager 进程可使用到的全部内存进行配置,包括 JVM 元空间和其他开销,默认为 1728M,可以根据集群规模进行适当调整。
(3)taskmanager.numberOfTaskSlots:对每个 TaskManager 能够分配的 Slot 数量进行配置,默认为 1,可根据 TaskManager 所在的机器能够提供给 Flink 的 CPU 数量决定。所谓Slot 就是 TaskManager 中具体运行一个任务所分配的计算资源。
(4)parallelism.default:Flink 任务执行的默认并行度,优先级低于代码中进行的并行度配置和任务提交时使用参数指定的并行度数量。
2、分发安装目录
配置修改完毕后,将 Flink 安装目录发给另外两个节点服务器。
scp -r /opt/module/flink-1.15.2 bigdata02:/opt/module
scp -r /opt/module/flink-1.15.2 bigdata03:/opt/module
也可以用我之前部署hadoop文章中的xsync分发脚本
xsync /opt/module/flink-1.15.2
3、每个节点修改flink-conf.yaml中taskmanager.host的参数
3、启动集群
在 bigdata01节点服务器上执行 start-cluster.sh 启动 Flink 集群
start-cluster.sh
然后三台主机分别jps
看一下
可以看到三台主机的Flink进程都已经正常启动了
我们打开bigdata01:8081看一下
可以看到每一个taskmanager节点的内存信息
也可以看到jobmanager节点的内存信息