Flink内核源码解析

Flink内核源码

Flink RPC 网络通信框架Akka

以往,我们接触过非常多的大数据技术栈相关的框架,用的比较多的大数据相关组件,常用的RPC实现技术如下:

技术组件RPC实现
HadoopNIO + Protobuf (Protobuf即Protocol Buffers,是Google公司开发的一种跨语言和平台的序列化数据结构的方式,是一个灵活的, 高效的用于序列化数据的协议)
HbaseHbase2.x以前:NIO + ProtoBuf,Hbase2.x会议后:Netty
ZooKeeperBIO(Blocking I/O,同步阻塞I/O模式) + NIO (New I/O,同步非阻塞的I/O模型) + Netty
SparkSpark-2.x 以前 基于 Akka Actor,Spark2.x往后基于 Netty RpcEndpoint
FlinkAkka(组件中间)+ Netty (operator)
KafkaNIO

在Flink中主从节点之间的通信组件,即:akka,可以通过Flink web ui进行确认
在这里插入图片描述
为什么Flink使用了两套通信框架呢?这是因为Flink节点与节点之间,组件与组件之间通信采用的是Akka,但是数据交换,比如算子与算子之间的数据交换采用的是Netty,比如Flink中有JobManager,还有TaskManager从节点,而JobManager主节点里面有一些组件,比如JobMaster,Dispatcher等,组件与组件之间通信采用的是Akka,而Netty是算子与算子之间,比如Map算子后面跟着Filter,Filter后面跟着reducekeyby等操作这些算子之间采用的是Netty来通信的。
Fink 内部节点之间的通信是用Akka,比如JobManager 和 TaskManager之间的通信,而operator之间的数据传输是采用的Netty
Flink通过Akka进行的分布式通信的实现,有远程过程调用都实现为异步消息,这主要影响组件:JobManager,TaskManager 和JobClient.
RPC框架是Flink任务运行的基础,Flink整个RPC框架基于Akka实现,并对Akka中的ActorSystem, Actor 进行了封装和使用,Flink整个通信框架的组件主要由 RpcEndpoint,RpcService,RpcServer,AkkaInvocationHandler,AkkaRpcActor等构成。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YB2416是支持高电压输入的同步降压电源管理芯片

简介: YB2416是支持高电压输入的同步降压电源管理芯片,在 4~30V 的宽输入电压范围内可实现3A的连续电流输出。通过调节 FB 端口的分压电阻,可以输出1.8V到28V的稳定电压。YB2416具有优秀的恒压/恒流(CC/C)特性。YB2416 采用电流模式的环路控制…

(二)结构型模式:8、代理模式(Proxy Pattern)(C++示例)

目录 1、代理模式(Proxy Pattern)含义 2、代理模式的UML图学习 3、代理模式的应用场景 4、代理模式的优缺点 5、C实现代理模式的实例 1、代理模式(Proxy Pattern)含义 代理模式(Proxy),为…

​怎么将物理机硬盘克隆到虚拟机?

​用户案例:克隆后的硬盘是否能用于虚拟机? “我有一台安装了Windows10的计算机,现在正在尝试克隆电脑上的硬盘。然后我想把这个硬盘放在自己的虚拟机中使用,这样我就可以从克隆的硬盘中启动相同的Windows10系统。” …

Unity 编辑器资源导入处理函数 OnPreprocessTexture:深入解析与实用案例

Unity 编辑器资源导入处理函数 OnPreprocessTexture 用法 点击封面跳转下载页面 简介 在Unity中,我们可以使用编辑器资源导入处理函数(OnPreprocessTexture)来自定义处理纹理资源的导入过程。这个函数是继承自AssetPostprocessor类的&#x…

MySQL中的锁机制

抛砖引玉:多个查询需要在同一时刻进行数据的修改,就会产生并发控制的问题。我们需要如何避免写个问题从而保证我们的数据库数据不会被破坏。 锁的概念 读锁是共享的互相不阻塞的。多个事务在听一时刻可以同时读取同一资源,而相互不干扰。 写…

主成分分析Python代码

对于主成分分析详细的介绍:主成分分析(PCA)原理详解https://blog.csdn.net/zhongkelee/article/details/44064401 import numpy as np import pandas as pd标准PCA算法 def standeredPCA(data,N): #data:…

【iMessage苹果推?IM推送】群控脚本当Apple APNS推送服务器从您的应用程序接吸收注册消息时,它将为您回到一串devicetoken

推荐内容IMESSGAE相关 作者✈️IMEAE推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容3.日历推 *** …

QWeb简史

到目前为止&#xff0c;我们的房地产模块的界面设计相当有限。构建列表视图很简单&#xff0c;因为只需要字段列表。表单视图也是如此&#xff1a;尽管使用了一些标记&#xff0c;如<group>或<page>&#xff0c;但在设计方面几乎没有什么可做的。 然而&#xff0c…

vite+vue3项目配置cdn引入在线依赖

采用ejs的方式 安装语法依赖 npm install vite-plugin-ejs -D配置暴露数据 vite.config.js文件&#xff1a; import { fileURLToPath, URL } from node:url import { defineConfig, loadEnv } from vite import vue from vitejs/plugin-vue import vueJsx from vitejs/plug…

MySQL 索引为什么使用 B+ 树,而不使用红黑树 / B 树 ?

面试官问 &#xff1a;索引为什么使用 B 树&#xff0c;而不使用 B 树&#xff0c;不使用红黑树呢 首先 B 树和 B 树 都是多叉搜索树&#xff0c;然后我们先来观察一下 B 树和 B 树的数据结构&#xff1a; B 树的数据结构实现 >> B 树的数据结构实现 >> 【B 树相…

引领行业高质量发展|云畅科技参编《低代码开发平台创新发展路线图(2023)》

8月8日-9日&#xff0c;中国电子技术标准化研究院于北京顺利召开《低代码开发平台创新发展路线图&#xff08;2023&#xff09;》封闭编制会。云畅科技、浪潮、百度、广域铭岛等来自低代码开发平台解决方案供应商、用户方、科研院所等近30家相关单位的40余位专家参与了现场编制…

华为在ospf area 0单区域的情况下结合pbr对数据包的来回路径进行控制

配置思路&#xff1a; 两边去的包在R1上用mqc进行下一跳重定向 两边回程包在R4上用mqc进行下一跳重定向 最终让内网 192.168.10.0出去的数据包来回全走上面R-1-2-4 192.168.20.0出去的数据包来回全走 下面R1-3-4 R2和R3就是简单ospf配置和宣告&#xff0c;其它没有配置&#…