Flink源码解析(1)TM启动

网络传输模型

首先在看之前,回顾一下akka模型:

Flink通讯模型—Akka与Actor模型-CSDN博客

注:ActorRef就是actor的引用,封装好了actor

下面是jm和tm在通讯上的概念图:

RpcGateway

不理解网关的作用,可以先移步看这里:网关_百度百科 (baidu.com)

  1. 用于定义RPC协议,是客户端和服务端沟通的桥梁。
  2. 服务端实现了RPC协议,即实现了接口中定义的方法,做具体的业务逻辑处理
  3. 客户端实现了RPC协议,客户端是Proxy生成的代理对象,将对RpcGateway接口方法的调用转为Akka的消息发送。
  4. 关注其5个子接口:DispatcherGateway、ResourceManagerGateway、JobMasterGateway、MetricQueryServiceGateway、TaskExecutorGateway。

RpcEndpoint

  1. RPC服务端的抽象,实现了该接口即为Rpc服务端,是Akka中Actor的封装。
  2. Actor收到ActorRef发送的消息(消息被封装为RpcInvocation对象),会通过RpcInvocation对象中的方法、参数等信息以反射的方式调用RpcGateway接口对应的方法。
  3. 关注其5个实现类:Dispatcher、ResourceManager、JobMaster、MetricQueryService、TaskExecutor。其中Dispatcher、ResourceManager、JobMaster是JobManager进程中的Rpc服务,TaskExecutor是TaskManager进程中的Rpc服务,MetricQueryService在JobManager和TaskManager进程中都有。

其中五个最重要的接口的介绍:

  1. Dispatcher:
    • 作用: 1.可以跨作业运行,它为应用提交提供了REST接口。 2.当一个应用被提交执行时,分发器就会启动一个新的JobMaster组件并将应用提交给它。 3.Dispatcher他会启动一个WebUi,用来方便地展示和监控作业执行的信息。
  2. ResourceManager:
    • 作用: 管理集群中的资源。ResourceManager 负责监控集群中的可用资源,并根据需要分配资源给作业。它协调 TaskManager 的启动和关闭,以及资源的分配和释放。
  3. JobMaster:
    • 作用: 对作业进行管理和调度。JobMaster 是每个作业的主节点,负责协调作业的执行过程。它与 ResourceManager 通信以获取资源,并与 TaskExecutor 通信以启动、管理和监控作业的任务。
  4. MetricQueryService:
    • 作用: 提供度量指标的查询服务。MetricQueryService 允许用户查询作业和任务的度量信息,例如吞吐量、延迟、状态大小等。它是用于监控和管理作业性能的重要组件。
  5. TaskExecutor:
    • 作用: 在 TaskManager 上执行作业任务。TaskExecutor 负责执行 TaskManager 上的任务,并与 JobMaster 通信以接收作业的任务和指令。它管理任务的执行状态、资源分配和失败处理。

RpcService

  1. 是 RpcEndpoint 的运行时环境,是Akka中ActorSystem的封装
  2. 一个ActorSystem系统中有多个Actor,同样在Flink中一个RpcService中有多个RpcEndpoint,即多个Rpc服务。
  3. Flink中RpcService也有多套,JobManager和TaskManager进程中都有两套RpcService。
  4. RpcService 提供了启动Rpc服务(startServer)、停止Rpc服务(stopServer)、连接远端Rpc服务等方法
  5. 实现类是AkkaRpcService,内有属性ActorSystem actorSystem,Map<ActorRef, RpcEndpoint> actors。

RpcServer

是Rpc服务端自身的代理对象,设计上是供服务端调用自身非Rpc方法。

了解完flink通讯模型的基本接口概念,接下来回顾一下flink的基本架构图:

客户端不是运行时和程序执行的一部分,但用于准备数据流并将其发送到JobManager。之后,客户端可以断开连接(分离模式 detached mode),或者保持连接以接收进度报告(附加模式 attached mode)。客户机可以作为触发执行的Java/Scala程序的一部分运行,也可以在命令行使用./bin/flink run...开启进程中运行。

JobManager和taskmanager可以以各种方式启动:作为独立集群直接在机器上启动,或者在容器中启动,或者由YARN或Mesos等资源框架管理。TaskManagers连接到JobManagers,宣布它们是可用的,并分配工作。

由于篇幅有限,这里我们主要关注下TaskManager的相关内容,关于JobManager的后面再具体来分析。

TaskManager

TaskManager就是执行数据流中任务以及缓冲和交换数据流的worker。必须始终至少有一个TaskManager。任务管理器中资源调度的最小单元是任务槽。任务管理器中的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/467046.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CMake学习(上)

1. CMake概述 CMake 是一个项目构建工具&#xff0c;并且是跨平台的。关于项目构建我们所熟知的还有Makefile&#xff08;通过 make 命令进行项目的构建&#xff09;&#xff0c;大多是IDE软件都集成了make&#xff0c;比如&#xff1a;VS 的 nmake、linux 下的 GNU make、Qt …

论文解读之Attention-based Deep Multiple Instance Learning

前言 多实例学习是由监督学习演变而来的&#xff0c;我们都知道&#xff0c;监督学习在训练的时候是一个实例&#xff08;或者说一个样本、一条训练数据&#xff09;对应一个确定的标签。而多实例的特点就是&#xff0c;我们在训练的时候的输入是多个实例对应一个确定的标签&a…

STM32使用常见错误合集(正在更新版)

本文章记录一些学习STM32的一些错误问题 一、编译、烧录类问题 1、烧录不成功&#xff0c;Keil提示RDDI-DAP Error【场景&#xff1a;PWM驱动直流电机】 解决方案&#xff1a;将电机断开再进行烧录&#xff0c;断开后就可以美美烧录不报错啦~ 二、Keil使用问题 1、打开一个…

【设计模式】-工厂模式

工厂模式是一种创建型设计模式&#xff0c;它提供了一种在不指定具体类的情况下创建对象的方法。工厂模式的核心思想是将对象的创建与使用分离&#xff0c;降低系统的耦合度&#xff0c;使系统更加灵活、可扩展。 工厂模式主要分为三种类型&#xff1a;简单工厂模式、工厂方法…

深入解析JVM加载机制

一、背景 Java代码被编译器变成生成Class字节码&#xff0c;但字节码仅是一个特殊的二进制文件&#xff0c;无法直接使用。因此&#xff0c;都需要放到JVM系统中执行&#xff0c;将Class字节码文件放入到JVM的过程&#xff0c;简称类加载。 二、整体流程 三、阶段逻辑分析 3…

断言assert是什么?

assert是什么&#xff1f; assert断言&#xff0c;是一个被定义在<assert.h>头文件中的一个宏&#xff0c;而不是一个函数。 可以用来检查数据的合法性&#xff0c;但是频繁的调用极大影响了程序的性能&#xff0c;增加了额外的开销。可以通过#define NDEBUG来禁用asse…

【Unity】CatlikeCoding SRP

Unity 自定义渲染管线 提示&#xff1a;基于CatlikeCoding SRP系列教程学习 学习链接&#xff1a;SRP 个人测试: Demo 相关记录以后有时间再更&#xff1a;

CLIP解读

1、引言 在计算机视觉领域&#xff0c;通常需要经过训练模型来实现对预定类别目标预测&#xff08;如分类、检测等任务&#xff09;&#xff0c;但是这种形式会限制模型的通用性。比如我们训练完了一个猫狗分类模型&#xff0c;如果现在希望识别一只老虎&#xff0c;那么原来训…

关于mybatis-plus分页查询total=0问题解决

今天复习分布式架构&#xff0c;一步一步从新架构模块&#xff0c;写道mybatis-plus的时候&#xff0c;突然发现分页查询居然total一直等于0。 在项目上的时候&#xff0c;都是架构师吧这个弄好了的&#xff0c;我一直以为直接分页查询&#xff0c;就会有值&#xff0c;原来还…

如何使用 ArcGIS Pro 分析爆炸波及建筑

创建三维图层 在工具箱中点击“3D Analyst 工具\3D要素\转换\依据属性实现要素转3D”,调用依据属性实现要素转3D工具,如下图所示。 调用依据属性实现要素转3D工具 在显示的依据属性实现要素转3D对话框内,输入要素为爆炸点图层,选择高度字段,如下图所示。 依据属性实现…

2024年个人小型渲染农场搭建是否值得?

个人小型渲染农场的搭建是否值得是一个需要综合考虑的问题。对于那些追求高效渲染和成本控制的创作者来说&#xff0c;个人渲染农场提供了自主控制进度的优势。然而&#xff0c;同时也必须面对技术挑战和初期投资的压力。要决定是否投资个人渲染农场&#xff0c;关键在于权衡技…

结构体中的内存对齐是什么?一起搞懂它

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

9成省份“鸿蒙化”,它真起来了?

自去年9月华为宣布鸿蒙原生应用全面启动以来&#xff0c;鸿蒙正以不可阻挡之势&#xff0c;快速在全国千行百业的移动应用领域推进。不仅有支付宝、快手、淘宝、京东等超200家头部互联网企业加入鸿蒙生态&#xff1b;2024年以来&#xff0c;上海、浙江、广西等多省市政务民生、…

QGIS中天地图插件的安装与使用

概述 在QGIS中可添加xyz类型的切片为数据源&#xff0c;一般作为底图加载到地图上。在QGIS中添加xyz类型的切片的操作可参考QGIS CookBook。天地图提供的服务也是xyz类型的切片&#xff0c;但是为提高其加载速度&#xff0c;一般采用了t0-t7多个节点&#xff0c;在QGIS中添加x…

世界第一个AI软件工程师问世!

2024年3月13日&#xff0c;科技公司Cognition推出了世界上第一位人工智能软件工程师Devin AI。这项创新有望利用人工智能编码和机器学习的力量加快发展。Devin AI不仅仅是帮助&#xff1b;它是一个成熟的队友&#xff0c;发挥智能编码自动化和自主人工智能编码的魔力&#xff0…

ElasticSearch 用法

首先讲下 ES的倒排序索引 入门-倒排索引 正排索引&#xff08;传统&#xff09; idcontent1001my name is zhang san1002my name is li si 倒排索引 keywordidname1001, 1002zhang1001 正排索引&#xff1a;我想查name&#xff0c;这时候是模糊的查询&#xff0c;会循环遍历…

【鸿蒙HarmonyOS开发笔记】动画过渡效果之组件内转场动画,内含ForEach动画

概述 我们在开发中难免设计组件的插入、删除过程。通过组件内转场动画&#xff0c;可定义组件出现、消失的效果。 组件内转场动画的接口为&#xff1a; transition(value: TransitionOptions)transition函数的入参为组件内转场的效果&#xff0c;可以定义平移、透明度、旋转…

AI论文速读 | UniTS:构建统一的时间序列模型

题目&#xff1a;UniTS: Building a Unified Time Series Model 作者&#xff1a;Shanghua Gao&#xff08;高尚华&#xff09;, Teddy Koker, Owen Queen, Thomas Hartvigsen, Theodoros Tsiligkaridis, Marinka Zitnik 机构&#xff1a;哈佛大学&#xff08;Harvard&#x…

如何监听抖音、快手、哔哩哔哩弹幕实现弹幕游戏制作?直播互动助手开放 API 帮你快速构建详细教程

弹幕直播概述 如何监听抖音、快手、哔哩哔哩弹幕实现弹幕游戏制作&#xff1f;随着中短视频平台直播热度的攀升&#xff0c;基于弹幕监听的直播模式也逐渐让大家熟知。如何去进行弹幕直播&#xff0c;去实现基于弹幕和礼物的直播新模式。边缘骇客直播互动助手是一款兼容大部分…

第四百一十回

文章目录 1. 概念介绍2. 方法与细节2.1 获取方法2.2 使用细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取当前系统语言"相关的内容&#xff0c;本章回中将介绍如何获取时间戳.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…