通过启动脚本已经找到了TaskManager 的启动类org.apache.flink.runtime.taskexecutor.TaskManagerRunner

Flink 1.9源码学习03 ---- TaskManager启动源码

--->>>

我们先看它的main方法:

Flink 1.9源码学习03 ---- TaskManager启动源码

 

调用了runTaskManager方法,启动task manager:

Flink 1.9源码学习03 ---- TaskManager启动源码

启动了taskManager

Flink 1.9源码学习03 ---- TaskManager启动源码

start其实是将taskManager 端的RPC服务起起来了

看一下TaskManagerRunner的构造方法中:

Flink 1.9源码学习03 ---- TaskManager启动源码

点进去:

我们看到创建TaskManagerServices 传入了很多的对象。

Flink 1.9源码学习03 ---- TaskManager启动源码

我们需要关注的几个重点:

Flink 1.9源码学习03 ---- TaskManager启动源码

Flink 1.9源码学习03 ---- TaskManager启动源码Flink 1.9源码学习03 ---- TaskManager启动源码

返回类:

Flink 1.9源码学习03 ---- TaskManager启动源码

我们发现TaskExecutor 这个类实现了 TaskExecutorGateway 这个接口

Flink 1.9源码学习03 ---- TaskManager启动源码

我们看看这个接口,很熟悉的RPC通信,跟方法:

 

Flink 1.9源码学习03 ---- TaskManager启动源码

还有很熟悉的提交task的方法:

Flink 1.9源码学习03 ---- TaskManager启动源码

 

这个方法也是比较重要的,可以看到这是一个触发checkPoint的RPC,这里可能会有疑问为什么Chenkpoint这个RPC会在TaskManager端,看代码

Flink 1.9源码学习03 ---- TaskManager启动源码

看到 

task.triggerCheckpointBarrier()这个方法

看到这里大致就知道了,其实这个RPC是留给Coordinator调用的,会触发生成Barrier的逻辑,所以看到这里我们知道了 checkpoint rpc启动是在taskmanager启动的时候启动调用的。

 

参考:

https://www.cnblogs.com/ljygz/p/11414206.html

相关文章:

  • 2021-11-07
  • 2019-08-10
  • 2021-09-13
  • 2021-10-15
  • 2021-09-19
  • 2019-08-13
  • 2019-11-30
  • 2018-05-10
猜你喜欢
  • 2019-08-26
  • 2019-09-03
  • 2019-09-03
  • 2021-04-28
  • 2019-08-29
  • 2019-08-27
  • 2019-09-11
  • 2019-08-18
相关资源
相似解决方案