讲一下Flink的作业执行流程?

Johngo学长 Flink 35

flink2

以yarn模式Per-job方式为例概述作业提交执行流程

  1. 当执行executor()之后,会首先在本地client中将代码转化为可以提交的JobGraph
    如果提交为Per-Job模式,则首先需要启动AM, client会首先向资源系统申请资源,在yarn下即为申请container 开启AM,如果是Session模式的话则不需要这个步骤;
  2. Yarn分配资源,开启AM;
  3. Client将Job提交给Dispatcher;
  4. Dispatcher会开启一个新的JobManager线程;
  5. JM向Flink自己的Resourcemanager申请slot资源来执行任务;
  6. RM向Yarn申请资源来启动TaskManger(Session模式跳过此步);
  7. Yarn分配Container来启动taskManger(Session模式跳过此步);
  8. Flink的RM向TM申请slot资源来启动task;
  9. TM将待分配的slot提供给JM;
  10. JM 提交 task, TM 会启动新的线程来执行任务,开始启动后就可以通过 shuffle模块进行 task之间的数据交换。

回复

我来回复
  • 暂无回复内容

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部