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: hadoop102
- 5、配置masters文件(根据实际环境设置) - 1 - hadoop102:8081 
- 6、配置workers文件(根据实际环境设置) - 1 
 2- hadoop103 
 hadoop104
- 7、分发其他机器 - 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