Flink 所需组件 -1
Flink需要四个不同组件:Dispatch、JobManager、ResourceManager、TaskManager,基于Java虚拟机JVM运行,语言使用Java和Scala
1.Dispatch
(1)会跨多个作业
(2)提供REST接口来让我们提交任务
(3)一旦提交任务Dispatch会启动一个JobManager
(4)将应用转交给JobManager
(5)REST接口可以受到防火墙保护
(6)同时启动一个WEB的UI用来查看任务执行情况
(7)某些提交执行方式可能用不到Dispatch,后面会讲
2.JobManager
(1)作为主进程,控制单个应用执行,每个应用有一个自己的JobManager
(2)JobManager接收:JobGraph(逻辑DataFlow图)、全部类库、Jar
(3)JobManager将JobGraph转换为ExecutionGraph的物理DataFlow,该图包含哪些可以并行执行的任务
(4)JobManager向ResourceManager申请资源
(5)接收TaskManager中的Slot槽
(6)接收到足够多Slot,将ExecutionGraph中的任务分发给TaskManager执行
(7)执行过程中JobManager复杂集中协调工作,如创建检查点、保存点、及状态恢复
3.ResourceManager
(1)针对不同的环境创建不同的ResourceManager
(2)ResourceManager负责管理Flink的处理资源单元---TaskManager处理槽
(3)ResourceManager指示拥有空闲槽的TaskManager将其处理槽提供给JobManager
(4)如果Slot不够,那么ResourceManager会向外部请求资源提供更多TaskManager
(5)ResourceManager负责终止空闲的TaskManager,释放资源
4.TaskManager
(1)Flink工作进程(worker process)
(2)启动多个TaskManager,每个TaskManager有一定数量Slot
(3)处理槽Slot数目限制了每个TaskManager的执行任务数
(4)TaskManager启动后会向ResourceManager注册
(5)当收到ResourceManager指示时,会向JobManager提供一个或多个槽位
(6)JobManager获取到槽位,可以向处理槽中分配任务,同一个应用不同任务TaskManager会有数据交换
总结
主要介绍fink中组件Dispatch、JobManager、ResourceManager、TaskManager、和组件之间的大概关系,后面会详细介绍
读书笔记《基于Apache Flink的流处理》
好的开始是成功的一半
A good start is half the battle
版权声明: 本文为 InfoQ 作者【小知识点】的原创文章。
原文链接:【http://xie.infoq.cn/article/3398dfaad6fbbee9e7e887480】。文章转载请联系作者。
评论