zoukankan      html  css  js  c++  java
  • Flink的TaskManager启动(源码分析)

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

    来看一下它的main方法中

    最后被start了起来

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

    看一下TaskManagerRunner的构造方法中

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

    在这个方法中.fromConfiguration()

    看到创建了一个networkEnevironment并且把它起了起来其中

    因为flink的网络是走的netty,可以看到它会初始化netty的客户端和服务端用于网络通信并且传入了bufferPool池,这个在以后随缘更新到 反压 会详细的研究

    回到fromConfiguration()方法

    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也会起起来,这里就不全部写出了

  • 相关阅读:
    centOS7下安装GUI图形界面
    centos7 安装VMware Tools 遇到的一系列问题的解决方案
    centos7 更新源 安装ifconfig
    隐写 小案例
    linux shell脚本编程笔记(二): 分支结构
    strncmp memcmp区别
    linux shell脚本编程笔记(一): 构建基本脚本
    linux: sort排序数据 grep搜索数据
    C/C++控制台输出时设置字体及背景颜色
    boost.asio包装类st_asio_wrapper开发教程(转)
  • 原文地址:https://www.cnblogs.com/ljygz/p/11414206.html
Copyright © 2011-2022 走看看