一.架构设计
-
架构设计图
-
各层及相关术语说明
- 物理层
- 核心层
- 是flink的核心实现层,负责为上层的接口提供服务
- Runtime
- flink的核心计算
- Optimizer
- 负责任务的优化
- Stream Buider
- 负责对任务进行DAG优化
- API层
二.运行模式
- 各个运行模式的区分点
- 集群的生命周期
- 资源的隔离保障
- 运行模式分类
- 本地
- standlone 独立flink集群,也就是集群中仅安装了flink
- 集群运行
- 经常是指flink on yarn
- 三种
- session
- pre-job
- application
- 本地
- 一个机器的单进程多线程模拟集群
- 一般用于测试
- standlone
- 完全独立的flink集群,纯flink完成各种工作
- 集群
-
session
- 生命周期
- 资源隔离
- 总结
- 速度快,但是有风险
- 工作模式
- 工作流程
-
pre-job
-
application
- 生命周期
- 资源隔离
- 在 Flink Application 集群中,ResourceManager 和 dispatcher 作用于单个的 Flink 应用程序,相比于 Flink Session 集群,它提供了更好的隔离。
- 总结
- 该模式为yarn session和yarn per-job模式的折中选择。
- 工作流程
- 将各个环节更进一步进行专用化处理,相当于每个FlinkJob都有一套专用的服务角色进程。
- 示意图
-
总结
- 各个模式应用场景
- session模式
- 集群资源充分、频繁任务提交、小作业居多、实时性要求高的场景。
- per-job模式
- 作业少、大作业、实时性要求低的场景。
- application模式
- 实时性要求不太高、安全性有一定要求均可以使用,普遍适用性最强。
- session模式
- 生产环境中
- 一般建议用per-job或是application模式,提供了更好的资源隔离性和安全性。
- 各个模式应用场景
-
三.运行流程
-
核心角色
- 一个JobManager
- 一到多个TaskManager
-
流程图
-- 角色剖析
- JobManager
- 主要作用就是协调和监控Task,Task的执行顺序,task的任务状态决策等
- 这个进程由三个不同的组件组成
- ResourcesManager
- ResourceManager 负责 Flink 集群中的资源提供、回收、分配 - 它管理 task slots,这是 Flink 集群中资源调度的最小单位。Flink 为不同的环境和资源提供者(例如 YARN、Mesos、Kubernetes 和 standalone 部署)实现了对应的 ResourceManager。在 standalone 设置中,ResourceManager 只能分配可用 TaskManager 的 slots,而不能自行启动新的 TaskManager。
- dispatcher
- JobMaster
- ResourcesManager
- TaskManager
- JobManager
- 角色剖析
-
Yarn模式提交任务的工作流程
- flink-application运行模式
- flink-application运行模式
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。