小白学习Flink系列--第五篇(任务提交流程简述)
回顾 在开始讲本篇内容之前,先回忆一下上篇文章讲了什么,主要讲了以下几点
- Runtime架构组件介绍
- Task operator chain、slot的介绍,理清了TaskManager、task slot 、task operator chain之间的关系
部署方式 引子
? 重要的事情说三遍。Flink架构主要做的是什么呢?
? 资源和任务的匹配,即算子本地化!
? 资源和任务的匹配,即算子本地化!
? 资源和任务的匹配,即算子本地化!
? Flink Runtime可以作为yarn的应用程序运行,也可以在Mesos集群上运行,也可以在单机上运行(本地调试相当方便)
? 本文主要以standalone和yarn两种方式进行探讨
文章图片
Yarn
- 八股文流程
- FlinK任务提交前,client向HDFS上传Flink的jar包和配置
- 提交任务给RM,RM接受到请求后,分配AM的container资源并启动AM
- AM启动后加载jar包后启动JobManager,之后AM向RM申请资源
- RM分配资源container
- AM通知节点所在的nodemanager启动TaskManager
- NodeManager加载配置环境后启动TM
- TM启动后向JobManager发送心跳,等待JM向其分配任务
?
?
文章图片
?
Standalone
【小白学习Flink系列--第五篇(任务提交流程简述)】? 流程:
- 用户提交任务,Client负责作业的编译和提交
- client产生jobGraph提交到集群中执行
- AM预先启动,client直接与Dispatcher建立连接提交作业
- Dispatcher启动JobManager,由其向RM申请资源执行任务
- RM向外部资源申请资源启动Task Executor,等待task executor启动后向RM注册
- RM选择合适的slot通知TM 进行分配(类似银行大厅叫号,请xx号到几号柜台)
- TM拿个小本本记下来,去找柜员(JobManager)注册
- JobManager收到注册上来的slot后,提交Task
- TaskExecutor收到JM提交的Task后,埋头干活(启线程,也就是task执行任务)
文章图片
推荐阅读
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)
- 焦点学习田源分享第267天《来访》