都知道Flink中的角色分为Jobmanager,TaskManger

在启动脚本里面已经找到了jobmanager的启动类org.apache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint(local模式更简单直接在Driver端的env.exection()直接启动了,有兴趣可以研究一下)

来看一下StandaloneSessionClusterEntrypoint启动类的一些重要的方法

在main方法中会调用抽象类 ClusterEntrypoint.java的

在这里启动了集群

在这个方法runCluster()中比较重要

其中1处初始化了一些ClusterEntrypoint.java中的一些服务像什么HA,blob,heartbeat,metricRegistry这些

还是主要看一下2处create()方法中

其中包括了一些创建以及启动ResourceManager(有用于请求solt的RPC,初始化所有solt到resourceManager的soltManager的RPC(这个会在jobmanager接收到jobGraph后调用),TM心跳等),启动web服务

来看一下ResourceManager的初始化

1处创建的services里面会包含一个soltManager但是里面并没有solt,solt并没有初始化

主要看下2处,创建了一个resourceManager对象这个抽象类实现了接口

这个接口下的几个重要的RPC方法具体实现

这里可以看到是具体向resourceManager请求solt的RPC,另外一个

这个RPC会发送信息到resourceManager包括像taskManagaer有多少可分配的solt,哪些已分配的solt,solt的状态等

然后在create()方法中就将这个resourceManager的PRC服务启动起来了

起来以后

主要看一下这里

创建了一个Dispatcher调度对象

看下Dispatcher是用来干嘛的(StandaloneDispatcher都是调用了父类的初始化方法super()创建一个Dispatcher.java对象)

来看一下Dispatcher实现了什么接口(ResourceManager同理)

看一下实现的这个接口,当然还有一些其他的

具体实现

看到这里就应该很熟悉了

他实现了submitJob()接口用于启动一个RPC,接受参数可以看到接受到一个JobGraph,这就意味着这和job任务启动有关,后面随缘更新到job启动Graph转换会提到

回到前面的Dispatcher.start()将传入的rpcService启动起来了,等待接受来自Driver端提交上来的JobGraph差不多启动完成了

这里jobmanager其实还不完整,负责一些服务没有起来,要等到Driver端的Jobgraph提交以后才会起来,像Coordinator后面随缘到job提交会详细的说一下

最新文章

  1. [LeetCode] Missing Ranges 缺失区间
  2. iOS进阶之多线程
  3. 使用 Portable Class Library(可移植类库)开发 Universal Windows App
  4. Spark(一): 基本架构及原理
  5. HDU 5396 Expression(DP+组合数)(详解)
  6. Minix
  7. 库函数atoi()的实现
  8. Java经典案例之-判断质数(素数)
  9. 【WPF】DispatcherFrame 是个啥玩意儿
  10. Fatal error in launcher:Unable to create process using '"'
  11. c#调用com组件,程序 发生意外<hr=0x80020009>
  12. Codeforces 1064D/1063B Labyrinth
  13. DeepLearning.ai-Week2-Keras tutorial-the Happy House
  14. 微信小程序使用阿里图标-iconfont
  15. native.js 判断是否安装某app
  16. 【转】java平台的编码问题 getByte()所用编码
  17. Ubuntu 安装Docker
  18. Leetcode 35
  19. 解决eclipse为什么不能查看源码
  20. 网易客户端授权密码,errormsg='authentication failed (method LOGIN)' exitcode=EX_NOPERM

热门文章

  1. 用canvas绘制时钟
  2. android异常 More than one file was found with OS independent path 'META-INF/XXX'
  3. linux初学者-系统服务的控制
  4. Atlassian In Action-Jira之二次开发(五)
  5. spring+mybatis最简多数据源配置
  6. Split函数的使用
  7. 蘑菇街工程师常用的Linux命令!
  8. Ping、Traceroute工作原理
  9. MySql数据库操作命令
  10. 【Java例题】4.4使用牛顿迭代法求方程的解