Flink多种模式部署实践
一、Local 模式
Local 模式是 Flink 提供的最简单部署模式,一般用来本地测试和演示使用。
进入 Flink 官网,下载 1.15.2 版本安装包 flink-1.15.2-bin-scala_2.12.tgz,注意此处选用对应 scala 版本为 scala 2.12 的安装包。
https://flink.apache.org/zh/downloads.html
将压缩包下载到本地,并且直接进行解压,使用 Flink 默认的端口配置,直接运行脚本启动:
1 | tar -zxvf flink-1.15.2-bin-scala_2.12.tgz |
1 | ./bin/start-cluster.sh |
我们直接访问本地的 8081 端口,可以看到 Flink 的后台管理界面,验证 Flink 是否成功启动。
我们尝试提交一个测试任务:
1 | ./bin/flink run examples/batch/WordCount.jar |
二、Standalone 模式
1.1 环境配置
Flink 安装部署的学习时,需要准备 3 台 Linux 机器。具体要求如下:
- 系统环境为 CentOS 7.9 版本。
- 安装 Java 8。
1
2
3
4[root@hadoop102 flink-1.15.2]# java -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode) - 配置集群节点服务器间时间同步以及免密登录,关闭防火墙。
1.2 集群节点
节点服务器 | hadoop102 | hadoop103 | hadoop104 |
---|---|---|---|
ip | 192.168.10.102 | 192.168.10.103 | 192.168.10.104 |
角色 | JobManager | TaskManager | TaskManager |
1.3 下载并配置运行
进入 Flink 官网,下载 1.15.2 版本安装包 flink-1.15.2-bin-scala_2.12.tgz,注意此处选用对应 scala 版本为 scala 2.12 的安装包。
https://flink.apache.org/zh/downloads.html
1、解压到/opt/module目录下
1
[root@hadoop102 flink]$ tar -zxvf flink-1.15.2-bin-scala_2.12.tgz -C /opt/module/
2、进入/opt/module下 的Flink 目录下
1
[root@hadoop102 flink-1.15.2]$ cd /opt/module/flink-1.15.2
3、进入conf目录中
1
[root@hadoop102 flink-1.15.2]$ cd /conf
4、配置flink-conf.yaml文件
1
[root@hadoop102 conf]$ vim flink-conf.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27# jobManager 的IP地址
jobmanager.rpc.address: hadoop102
# jobManager JVM heap内存大小
jobmanager.heap.size: 1024m
# jobManager 的rpc通信端口
jobmanager.rpc.port: 6123
# jobManager 绑定到的网络接口的地址
jobmanager.bind-host: hadoop102
# jobmanager进程使用的所有内存大小
jobmanager.memory.process.size: 1600m
# taskmanager服务地址 -> 不同主机改主机名称或ip 如:hadoop103、hadoop104
taskmanager.bind-host: hadoop102/hadoop103/hadoop104
# taskManager绑定到的网络接口的地址 -> 不同主机改主机名称或ip 如:hadoop103、hadoop104
taskmanager.host: hadoop102/hadoop103/hadoop104
# taskmanager进程使用的所有内存大小
taskmanager.memory.process.size: 1728m
# 每个TaskManager 提供的任务 slots 数量大小
# 它的意思是当前task能够同时执行的线程数量 (实际生产环境建议是CPU核心-1,这里笔者写2)
taskmanager.numberOfTaskSlots: 2
# 默认并行度
parallelism.default: 1
# 重启策略
jobmanager.execution.failover-strategy: region
# 客户端应该用来连接到服务器的地址
rest.address: hadoop102
# web服务绑定的address
rest.bind-address: hadoop1025、配置masters文件(根据实际环境设置)
1
hadoop102:8081
6、配置workers文件(根据实际环境设置)
1
2hadoop103
hadoop1047、分发其他机器
1
[root@hadoop102 conf]$ xsync /opt/module/flink-1.15.2
8、启动集群
1
[root@hadoop102 flink-1.15.2]$ bin/start-cluster.sh
9、Web UI 默认端口 http://hadoop102:8081
10、关闭集群
1
[root@hadoop102 flink-1.15.2]$ bin/stop-cluster.sh
1.4 问题
- MacBook M1虚拟机
- Centos7操作系统
Flink TaskManager启动报错,报错信息如下:
1 | Error: VM option ‘UseG1GC’ is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions. |
处理办法
- 找到bin/taskmanager.sh文件
- 搜索UseG1GC
- 直接删除 -XX:+UseG1GC
三、on yarn 模式
on yarn中又分
- Session Mode
- Per-Job Mode (1.15 deprecated).
- Application Mode(Flink 1.11引入)
篇幅较大,单独:
Flink on yarn