小白学习Flink系列--第五篇(任务提交流程简述)

回顾

在开始讲本篇内容之前,先回忆一下上篇文章讲了什么,主要讲了以下几点

  • Runtime架构组件介绍
  • Task operator chain、slot的介绍,理清了TaskManager、task slot 、task operator chain之间的关系

那么自然而然的事情,讲完了基本组成,就要抛出一个主要的问题了,用村上春树的书名来表达的话就是----当你提交任务后,Flink做了什么?

部署方式

引子

​ 重要的事情说三遍。Flink架构主要做的是什么呢?

​ 资源和任务的匹配,即算子本地化!

​ 资源和任务的匹配,即算子本地化!

​ 资源和任务的匹配,即算子本地化!

​ Flink Runtime可以作为yarn的应用程序运行,也可以在Mesos集群上运行,也可以在单机上运行(本地调试相当方便)

​ 本文主要以standalone和yarn两种方式进行探讨
在这里插入图片描述

Yarn

  • 八股文流程
    1. FlinK任务提交前,client向HDFS上传Flink的jar包和配置
    2. 提交任务给RM,RM接受到请求后,分配AM的container资源并启动AM
    3. AM启动后加载jar包后启动JobManager,之后AM向RM申请资源
    4. RM分配资源container
    5. AM通知节点所在的nodemanager启动TaskManager
    6. NodeManager加载配置环境后启动TM
    7. TM启动后向JobManager发送心跳,等待JM向其分配任务


在这里插入图片描述

Standalone

​ 流程:

  1. 用户提交任务,Client负责作业的编译和提交
  2. client产生jobGraph提交到集群中执行
  3. AM预先启动,client直接与Dispatcher建立连接提交作业
  4. Dispatcher启动JobManager,由其向RM申请资源执行任务
  5. RM向外部资源申请资源启动Task Executor,等待task executor启动后向RM注册
  6. RM选择合适的slot通知TM 进行分配(类似银行大厅叫号,请xx号到几号柜台)
  7. TM拿个小本本记下来,去找柜员(JobManager)注册
  8. JobManager收到注册上来的slot后,提交Task
  9. TaskExecutor收到JM提交的Task后,埋头干活(启线程,也就是task执行任务)
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值