Flink架构

JobManager

控制一个应用程序执行的主进程,每个应用程序将由不同的JobManager控制执行。JobManager会先接收到要执行的应用程序,包括作业图(JobGraph),逻辑数据流图(Logical Dataflow Graph)和打包的所有类库Jar包。
JobManager将JobGraph转换成物理层面的数据流图执行图(ExecutionGraph),包含所有可并发执行的任务。
JobManager向ResourceManager请求执行任务必要的资源,即TaskManager上的插槽(slot)。获取到了足够的资源后,就将执行图分发到真正运行他们的TaskManager上。
在运行过程中,JobManager会负责所有需要中央协调的操作。

ResourceManager

负责管理TaskManager上的slot。slot是flink定义的处理资源单元。
当JobManager申请资源时,ResourceManager将有空闲slot的TaskManager分配给JobManager。如果ResourceManager没有足够的slot,可向资源提供平台发起会话,以提供启动TaskManager进程的容器。ResourceManager还负责终止空闲的TaskManager,释放计算资源。

TaskManager

每个TaskManager都有一定数量的slot。slot的数量限制了 TaskManager 能够执行的任务数量。
TaskManager会向ResourceManager注册slot,收到ResourceManager的指令后,TaskManager就将slot提供给JobManager调用,JobManager就可以向slot分配task来执行了。在执行过程中,一个TaskManager可以跟其它运行同一应用程序的TaskManager交换数据。

Dispatcher

可以跨作业运行,它为应用提交提供了rest接口。当一个应用被提交执行时,Dispatcher就会启动并将应用移交给一个JobManager。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容