论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
大数据
›
数据仓库与分析
›
Flink 运行时架构
Flink 运行时架构
耶耶耶耶耶
金牌会员
|
2024-7-26 08:38:41
|
显示全部楼层
|
阅读模式
楼主
主题
639
|
帖子
639
|
积分
1917
Flink 运行时的组件
作业管理器(JobManager)
资源管理器(ResourceManager)
任务管理器(TaskManager)
分发器(Dispatch)
JobManager
控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的 JobManager 所控制执行;
JobManager 会先吸收到要执行的应用程序,这个应用程序,这个应用程序包括作业图(JobGraph)、逻辑数据流图(logical dataflow graph)和打包了全部类、库和其他资源的JAR包;
JobManager 会把 JobGraph 转换成一个物理层面的数据流图,这个图叫做执行图(ExecutionGraph),包罗了全部可以并发执行的任务;
JobManager 会向 ResourceManager 请求执行任务必要的资源,也就是 TaskManager 上的 slot 。一旦它获取到了足够的资源,就会将执行图分发到真正运行它们的 TaskManager 上。而在运行过程中,JobManager 会负责全部需要中心协调的操纵,比如所 checkpoint 的协调;
ResourceManager
重要负责管理 TaskManager 和 slot;
Flink 为不同环境和资源管理工具提供了不同的 ResourceManager,比如Yarn、Mesos、K8s,以及 standalone部署;
当 JobManager 申请 slot 资源时,ResourceManager 会将有空闲 slot 的 TaskManager 分配给 JobManager。假如 ResourceManager 没有足够的 slot 来满足 JobManager 的请求,它还可以向资源提供平台发起会话,以提供启动 TaskManager 进程的容器;
TaskManager
Flink 中的工作进程。通常在 Flink 中会有多个 TaskManager 运行,每一个 TaskManager 都包罗一定数量的 slot 。slot 的数量限制了 TaskManager 可以大概执行的任务数量(并行度);
启动之后,TaskManager 会向 ResourceManager 注册它的 slot ;收到 ResourceManager 的指令后,TaskManager 就会将一个或者多个 slot 提供给 JobManager 调用。JobManager 就可以向 slot 分配任务来执行了;
在执行过程中,一个 TaskManager 可以跟其他运行同一应用程序的 TaskManager 互换数据;
Dispatcher
可以跨作业运行,它为应用提交提供了 REST 接口;
当一个应用被提交时,Dispatcher 就会启动并将应用移交给一个 JobManager;
Dispatcher 也会启动一个 Web UI,用来方便地展示和监控作业执行的信息;
Dispatcher 在架构中大概并不是必需的,这取决于应用提交的方式;
Flink 任务提交流程
当程序执行 execute() 方法时,Client 会将程序编译成一个 DAG(有向无环图),这个图被称为 JobGraph ,JobGraph 形貌了程序的数据流和操纵;
Dispatcher 将 JobGraph 提交给 JobManager;
JobManager 吸收到 JobGraph 后会将其剖析,并创建一个 ExecutionGraph,ExecutionGraph 形貌了如安在集群中并行执行 JobGraph 中界说的数据流;
JobManager 根据 ExecutionGraph 的需求向 ResourceManager 请求资源;
一旦资源被分配,JobManager 会将作业分解成一系列的 Task ,然后将这些 Task 分配给集群中 TaskManager ,每个 TaskManager 执行一个或多个 Task;
TaskManager 吸收到 Task 后会在本地执行它们;
TaskManager 会定期保存状态快照,并向 JobManager 陈诉任务的进度和状态;
当全部 Task 都乐成执行完毕,JobManager 会标记作业为完成,而且释放全部分配的资源;
以上是从一个较为高级的视角,来看应用中各组件的交互协作。假如部署的集群环境不同,此中一些步调可以省略,或是有些组件会运行在同一个 JVM 进程中。
下面以详细部署到 Yarn 上为例:
Flink 提交任务后,Client 向 HDFS 上传 Flink 的 Jar 包和配置;
Client 向 ResourceManager 提交任务,ResourceManager 分配 Container 资源并关照对应的 NodeManager 启动 ApplicationMaster,ApplicationMaster 启动后加载 Flink 的 Jar 包和配置构建环境,然后启动 JobManager;
ApplicationMaster 向 ResouceManager 申请资源启动 TaskManager;
ResourceManager 分配 Container 资源后,由 ApplicationMaster 关照资源所在节点的 NodeManager 启动 TaskManager;
TaskManager 加载 Flink 的 Jar包和配置构建环境并启动 TaskManager;
TaskManager 启动后向 JobManager 发送心跳包,并等待 JobManager 向其分配任务;
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
耶耶耶耶耶
金牌会员
这个人很懒什么都没写!
楼主热帖
集合论第6-8章
蜻蜓优化算法(Matlab完整代码实现) ...
为什么你应该停止依赖Jenkins的插件? ...
腾讯云多媒体文件处理总结
SQL 教程之 10 个 SQL 操作用于 80% 的 ...
axios&spring前后端分离传参规范总结 ...
Python知识点(史上最全)
MySQL InnoDB索引原理
大数据 - ClickHouse
20220319编译OpenHarmony-v3.1-beta出 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表