大家好,我是雷恩Layne,这是《深入浅出flink》系列的第二篇文章,我旨在用最直白的语言写好flink,希望能让所有看到的人一目了然。如果大家喜欢,欢迎点赞、关注,也欢迎留言,共同交流flink的点点滴滴 O(∩_∩)O
文章目录
文章前半部分描述Flink运行时的四大核心组件,大家在对四个组件有个印象后,再通过一张完整的图来讲解这四大组件是如何协同工作的,即Flink任务分布式的运行流程。
1. Flink运行时的四大核心组件
Flink运行时架构主要包括四个不同的核心组件,它们会在运行流处理应用程序时协同工作,分别是:作业管理器(JobManager)、资源管理器(ResourceManager)、任务管理器(TaskManager),以及分发器(Dispatcher)。因为Flink是用Java和Scala实现的,所以所有组件都会运行在Java虚拟机上。
1.1 分发器:Dispatcher
Dispatcher主要负责接收客户端提交的JobGraph对象,例如CLI客户端或Flink Web UI提交的任务最终都会发送至Dispatcher组件,由Dispatcher组件对JobGraph进行分发和执行,其中就包含根据JobGraph对象启动JobManager服务,专门用于管理整个任务的生命周期。Dispatcher也会启动一个Web UI,用来方便地展示和监控作业执行的信息。Dispatcher在架构中可能并不是必需的,这取决于应用提交运行的方式。