Flink安装与Job部署
学习版本:1.13.2
组件介绍
参考文档
必须组件
| 组件 | 介绍 | 实现 |
|---|---|---|
| Flink Client | 编译batch或者streaming应用为数据流图,然后提交给JobManager |
|
| JobManager | JobManager是Flink的中心工作协调组件的名称。它有针对不同资源提供者的实现,这些资源提供者在高可用性、资源分配行为和支持的作业提交模式上有所不同。 作业提交的作业管理器模式: Application Mode:仅为一个应用程序运行群集。作业的主方法(或客户端)在JobManager上执行。支持在应用程序中多次调用’execute`/‘executeAsync’。 Per-Job Mode: 只为一个作业运行群集。作业的主方法(或客户端)仅在创建集群之前运行。 Session Mode: 一个JobManager实例管理共享同一TaskManager群集的多个作业 |
|
| TaskManager | TaskManager是实际执行Flink作业的服务。 |
可选组件
- High Availability Service Provider
- File Storage and Persistency
- Resource Provider
- Metrics Storage
- Application-level data sources and sinks
个人见解
部署模式的区别?
参考官方文档分析(引用部分为官方内容翻译)
Session Mode:job manager、task manager资源预先分配,job共享争抢资源,如果task manager使用不当,造成task manager关闭,可能影响其他job运行。但是因为不需要启动ob manager避免了资源创建的过程,适合对启动时间敏感,作业周期短的作业。缺点:资源固定,无法扩展。
会话模式假设一个已经在运行的集群并使用该集群的资源来执行任何提交的应用程序。在同一(会话)集群中执行的应用程序使用并因此竞争相同的资源。这样做的好处是您无需为每个提交的作业支付启动完整集群的资源开销。但是,如果其中一个作业行为不当或关闭了 TaskManager,那么在该 TaskManager 上运行的所有作业都将受到故障的影响。除了对导致失败的作业产生负面影响之外,这意味着潜在的大规模恢复过程,所有重新启动的作业同时访问文件系统并使其对其他服务不可用。此外,让单个集群运行多个作业意味着 JobManager 的负载更大,它负责集群中所有作业的簿记。此模式非常适合启动延迟非常重要的短期作业, 例如交互式查询。
Per-Job Mode:优点:资源可扩展,资源隔离,job互不影响;缺点:运行job时需要创建job manager和task manager,启动开销大,消耗时间。
在 Per-Job 模式下,可用的集群管理器框架(例如YARN 或 Kubernetes)用于为每个提交的作业启动一个 Flink 集群,该集群仅适用于该作业。作业完成后,集群将关闭并清除所有残留资源(例如文件)。此模式允许更好的资源隔离,因为行为不

最低0.47元/天 解锁文章
341

被折叠的 条评论
为什么被折叠?



