Flink的TaskManager启动(源码分析)

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

来看一下它的main方法中网络

最后被start了起来异步

start实际上是将taskManager 端的RPC服务起起来了分布式

看一下TaskManagerRunner的构造方法中3d

调用了这个startTaskManager()方法,在这个方法中又调用了netty

在这个方法中.fromConfiguration()blog

看到建立了一个networkEnevironment而且把它起了起来其中接口

由于flink的网络是走的netty,能够看到它会初始化netty的客户端和服务端用于网络通讯而且传入了bufferPool池,这个在之后随缘更新到 反压 会详细的研究内存

回到fromConfiguration()方法input

network.start之后它又

建立了内存管理类memoryManager和io管理类IOmanager, 这里之后随缘更新讲到内存和IO单独说

须要注意的是这里的Async异步IO,其实目前flink只有这一种异步的IO管理器

建立了定时器服务,定时器留到窗口在讲

回到startTaskManager()方法的最后

这个类TaskExecutor就是前面说的包含了RPC接口的类主要是实现了接口

 

里面包含了一些重要的方法的实现,来看一下有哪些重要的方法

能够看到这是请求slot的

这是启动Task的其中这个tdd就包含了一些任务的信息上下游inputGate,resultPartition等 具体job启动的时候详细讲一下

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

能够先简单的看下具体实现

看到这里大体就知道了,其实这个RPC是留给Coordinator调用的,会触发生成Barrier的逻辑(也就是常常说的,coordinator会在source插入barriers用于分布式快照对齐)随缘更新到checkpoint的时候在细说吧

这里TaskManager就差很少启动起来了,固然TaskManager还有不少服务像什么HA,Heartbeat,BlobCache也会起起来,这里就不所有写出了

相关文章
相关标签/搜索