Flink 集群 Deployment Modes 介绍

Session Mode
共享 JobManager 和 TaskManager,所有 Job 都在一个 Runtime 中运行
支持 Standalone
Per-Job Mode
独享 JobManager 和 TaskManager,每个 Job 单独启动一个 Runtime
不支持 Standalone

Application Mode
Flink 1.11 版本的新 deployment option
Application 的 main() 方法运行在 Cluster ,而不在 Client
每个 Application 对应一个 Runtime,Application 中可以包含多个 Job
不支持 Standalone
Flink Standalone (单机) 介绍
JobManager 和 TaskMananger 全部在一个 node 上运行
仅适用于本地测试,不适用于生产环境
仅支持 Session Mode 提交 Job
不支持高可用
Flink Standalone (单机) 运行环境安装
下载
wget https://downloads.apache.org/flink/flink-1.12.2/flink-1.12.2-bin-scala_2.12.tgz
解压
tar zxvf flink-1.12.2-bin-scala_2.12.tgz -C ~/app
cd 到flink conf
cd ~/app/flink-1.12.2/confls -lrth

配置 flink-conf.yaml
vi flink-conf.yamljobmanager.rpc.address: localhostjobmanager.rpc.port: 6123jobmanager.memory.process.size: 2048mtaskmanager.memory.process.size: 4096mtaskmanager.numberOfTaskSlots: 4rest.port: 8086

Note: flink默认的rest.port的端口是8081,由于本机上配置8081会导致StandaloneSessionClusterEntrypoint 进程起不来,所以配置成了8086
配置 masters
vi masterslocalhost:8086
配置 workers
vi workerslocalhost
启动
cd ~/app/flink-1.12.2/bin./start-cluster.sh
Note: 停止使用 ./stop-cluster.sh
jps

查看UI
http://localhost:8086/#/overview

提交 Job
./bin/flink run ./examples/streaming/WordCount.jar --input ~/Desktop/input.txt --output ~/Desktop/output.txt

Note : input.txt

再次查看UI

查看output.txt

Reference
https://ci.apache.org/projects/flink/flink-docs-release-1.12/deployment/resource-providers/standalone/
https://ci.apache.org/projects/flink/flink-docs-release-1.12/deployment/config.html
https://flink.apache.org/news/2020/07/14/application-mode.html
泰克风格 只讲干货 不弄玄虚




