Spark 1.6RPC解析

第43课: Spark 1.6 RPC内幕解密:运行机制、源码详解、Netty与Akka等 第43课: Spark 1.6 RPC内幕解密:运行机制、源码详解、Netty与Akka等Spark 1.6推出了以RpcEnv、RPCEndpoint、RPCEndpointRef为核心的新型架构下的RPC通信方式,就目前的实现而言,其底层依旧是Akka;Akka是基于Actor的分布式消息通信系统,而在Spark 1.6中封装了Akka,提供更高层的Rpc实现,目的是移除对Akka的依赖,为扩 阅读详情

一:Spark 1.6RPC解析

1,Spark 1.6推出RpcEnv,RPCEndpoint,PRCEndpointRef为核心的新型架构下的RPC通信方式,就目前的实现而言,其底层依旧是Akka;

2,Akka是基于Actor的分布式消息通信系统,而在Spark 1.6中封装了Akka,提供更高层的Rpc实现,目的是移除对Akka的依赖,为了扩展和自定义Rpc打下基础;

二:RPCEnv解析

1,RpcEnv是RPC的环境(相当于Akka中的ActorSystem),所有的RpcEndpoint都需要注册到RpcEnv实例对象中(注册的时候会指定注册的名称,这样客户端就可以通过名称查询到RpcEndpoint的Ref的引用,进而进行通信),在RpcEndpoint接收到消息后会receive方法进行处理;

这里写图片描述

2,RpcEndpoint如果接收到需要reply的消息的话就会交给自己的receiveAndReply来处理(回复时候是通过RpcCallContext中的reply方法来回复发送者的),如果不需要reply的话就交给receive方法来处理;

3,RpcEnvFactory是负责创建RpcEnv的,通过create方法创建RpcEnv实例对象,默认是用的Netty:

private def getRpcEnvFactory(conf: SparkConf): RpcEnvFactory = {
  val rpcEnvNames = Map(
    "akka" -> "org.apache.spark.rpc.akka.AkkaRpcEnvFactory",
    "netty" -> "org.apache.spark.rpc.netty.NettyRpcEnvFactory")
  val rpcEnvName = conf.get("spark.rpc", "netty")
  val rpcEnvFactoryClassName = rpcEnvNames.getOrElse(rpcEnvName.toLowerCase, rpcEnvName)
  Utils.classForName(rpcEnvFactoryClassName).newInstance().asInstanceOf[RpcEnvFactory]
}

4,RpcEnpoint的生命周期:构造(constructor)-> 启动(onStart)、消息接收( receive*)、停止(onStop)

【AI气象6】Skilful nowcasting of extreme precipitation with NowcastNet 极端降水是气象灾害的重要因素,因此迫切需要通过高分辨率、长时间预报和局部细节的精准短期预报来减轻其社会经济影响。当前的方法存在模糊、衰减、强度或位置误差,基于物理的数值方法在捕捉关键的混沌动态(如对流起始)时面临挑战,而数据驱动的学习方法则未能遵循内在的物理法则(如平流守恒)。我们提出了 NowcastNet,这是一种针对极端降水的非线性短期预报模型,将物理演变方案与条件学习方法统一到一个端到端的神经网络框架中,通过优化预测误差进行训练。基于来自美国和中国的雷达观测数据,我们的模型能够生成物理上合理的降水短 阅读详情

相关推荐

【Proteus】NE555纯硬件实现LED呼吸灯效果,附源文件,效果展示

本设计通过NE555与三极管的巧妙配合,仅用基础元件实现了呼吸灯效果。核心在于利用RC积分电路将PWM信号转换为控制电压,并通过负反馈动态调节占空比。Proteus仿真验证了方案的可行性,读者可进一步优化参数或扩展功能,探索更多硬件设计可能性。

2201_75797484的博客 2979

深入理解Spark远程通信组件RPC及消息处理机制

1.简介 在Spark中,不同组件像driver,executor,worker,master(stanalone模式)之间的通信是基于RPC来实现的。Spark 1.6之前,Spark的RPC是基于Akka来实现的。Akka是一个基于scala语言的异步的消息框架。Spark1.6后,spark借鉴Akka的设计自己实现了一个基于Netty的rpc框架。本文主要对spark1.6之后基于nett...

鄙人王道长的博客 996

silvaco例子库学习—mos1ex02

mos1ex02相比于第一个例子,主要进行了mos的输出特性仿真,工艺结构是一样的,所以就只简单讨论一下atlas特性仿真的部分。

weixin_61913839的博客 852

Spark RPC

一:Spark 1.6RPC解析1,Spark 1.6推出RpcEnv,RPCEndpoint,PRCEndpointRef为核心的新型架构下的RPC通信方式,就目前的实现而言,其底层依旧是Akka;2,Akka是基于Actor的分布式消息通信系统,而在Spark 1.6中封装了Akka,提供更高层的Rpc实现,目的是移除对Akka的依赖,为了扩展和自定义Rpc打下基础;二:RPCEnv解析1,Rp

sundujing的博客 1001

西门子1500T插补控制实战:从硬件组态到轨迹规划

本文详细解析了西门子1500T插补控制的完整实战流程。从硬件组态中正确选择带T的CPU和配置报文105,到创建同步轴与插补器工艺对象,再到使用MC_Interpolator功能块编程实现直线与圆弧插补,并分享了调试技巧与常见问题解决方案,为工程师实现高精度复杂轨迹规划提供清晰指导。

weixin_29228781的博客 423

4 种方法识别Linux系统 USB 设备

导读 如果在系统中插入一个设备,尤其是在桌面环境下,比如 USB 设备,它会自动挂载到一个指定目录,一般是在 /media/username/device-label 目录下,之后你就可以进入到该目录下访问那些文件了。然而,在服务器上就不是这么回事了,你必须手动挂载这个设备,并且指定一个挂载点。 查询USB设备 Linux 系统使用 /dev 目录下特定的设备文件来标识插入的

郑帅的博客 1986

Spark RPC概述

概要 Spark RPC被deploy、scheduler、shuffle、storage等多个模块使用,是深入学习这些模块的前提。

u011564172的博客 4464

史上最全的Logisim运算器实验教程(基于华中科技大学计算机组成原理实验)

本博客是实现了Logisim的运算器设计,有具体的运算器设计的思路和运算器设计的电路,适合一步一步的按照思路做。

qq_62325622的博客 4万+

spark1.6使用过程中遇到的坑

1.streaming启动后卡死问题   产生这个问题的原因可能有两个,spark.cores.max   spark.cores.max不能小于2的原因是streaming在启动时会提交一个用于接收数据的receiver,本质上是一个永远不会结束的job,会永久的占用一个executor core,如果core只有1,spark streaming将无法提交后续任务,spark.co

zzxzz00001的专栏 1545

STM32 | DMA配置和使用如此简单(超详细)

DMA学习很难吗?其实DMA配置和使用如此简单!本文让你无论在DMA认识和理解上(抽象不抽象都有)还是在DMA配置和使用上有个彻彻底底的认识。文章包括寄存器和库函数讲解,省去你自行翻阅使用手册和固件库手册,点到点教会你DMA的配置和使用。

。。。 7万+

学Simulink--特殊天气场景实例:基于Simulink的智能车辆雨天行驶仿真(感知与控制)

本文详细介绍了基于Simulink的智能车辆雨天行驶仿真系统。通过构建降雨-路面-传感器-控制全链路耦合模型,实现了雨天场景下的自适应控制。系统根据降雨强度动态调整路面附着系数和传感器性能参数,上层控制算法相应调整ACC安全距离、ESC增益等参数。仿真结果表明,系统能在不同降雨强度下自动降低车速、增大跟车距离,保持车辆稳定性。文章还提供了完整的Simulink建模流程、关键模型实现方法及工程实践要点,为全天候自动驾驶功能开发提供了有效的验证平台。

xiaoheshang_123的博客 167

spark rpc

前段时间研究了一下spark rpc这部分源码,现在来总结下,以免以后忘记,spark rpc代码比较复杂抽象,这里我就想到什么就写什么,可能逻辑顺序上不是很严谨,大家多见谅;说明下,这里源码的为2.x版本; 底层通信框架 spark在1.6版本之后底层通信框架用netty替代了actor;具体原因,查看了网上的文档,大多说开发中经常使用到actor框架,容易和spark中的actor版本冲突...

帆了个帆的专栏 730

整车电检工艺流程

本文是笔者在从事汽车行业智能制造领域过程,对于整车电检工艺流程的理解与总结。

qq_40664711的博客 1万+

RPC架构简单理解

RPC(Remote Promote Call) 一种进程间通信方式。允许像调用本地服务一样调用远程服务。 RPC框架的主要目标就是让远程服务调用更简单、透明。RPC框架负责屏蔽底层的传输方式(TCP或者UDP)、序列化方式(XML/JSON/二进制)和通信细节。开发人员在使用的时候只需要了解谁在什么位置提供了什么样的远程服务接口即可,并不需要关心底层通信细节和调用过程。         ...

weixin_33851604的博客 543

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Spark RPC(简约版)

一:Spark 1.6RPC解析 1,Spark 1.6推出RpcEnv,RPCEndpoint,PRCEndpointRef为核心的新型架构下的RPC通信方式,就目前的实现而言,其底层依旧是Akka; 2,Akka是基于Actor的分布式消息通信系统,而在Spark 1.6中封装了Akka,提供更高层的Rpc实现,目的是移除对Akka的依赖,为了扩展和自定义Rpc打下基础; 二:RPCEn...

无 262

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Spark RPC 之 Netty 启动

文章目录摘要千言万语不如一张图1. SparkContext.scala2. SparkEnv.scala3. RpcEnv.scala4. NettyRpcEnvFactory.scala5. NettyRpcEnv.scala5.1 TransportContext.scala5.1.1 TransportServer.scala 摘要 Spark RPC概述中我们介绍了Spark RPC接口...

pre_tender的博客 316

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Spark源码之Rpc网络系统及任务提交消息传递流程源码图

一、从netty角度分析 首先我们都知道,spark1.6+之后整个rpc网络都是采用的netty实现。 1、netty基本原理 netty可以理解为客户端和服务端的通信。服务端的固定唯一的,客户端是随机多个的,客户端向服务端发送消息,服务端接受并处理消息。 netty的客户端持有一个send方法,调用send方法就可以屏蔽网络上的实现将消息发送给服务端。netty的服务端会事先注册好一个或多个入站处理器,当有消息进入时。会经过入站处理器,一般来讲入站...

ooeeerrtt的博客 1932

大数据IMF传奇行动绝密课程第43课:Spark 1.6 Rpc内幕解密

Spark 1.6 Rpc内幕解密1、Spark 1.6 Rpc内幕解析 2、RpcEnv源码彻底详解 3、RpcEndpoint等源码解析一、Spark 1.6 Rpc解析 1、Spark 1.6推出了以RpcEnv、RPCEndpoint、RpcEndpointRef为核心的新型架构下的RPC通信方式,就目前的实现而言,其底层依旧是Akka; 2、Akka是基于Actor的分布式消息通信

tom_8899_li的博客 634

Spark为何使用Netty通信框架替代Akka

转自:http://www.aboutyun.com/thread-21115-1-1.html 问题导读: 1. spark 如何在1.6.0之后使用Netty替代了Akka? 2. Spark Network Common怎么实现? 3. BlockTransfer 与 Shuffle 之间的联系? 4. Akka 实现原理是什么? 解决方案: 一

psiitoy的专栏 1万+

Spark2.2——RpcEnv(一)

  Spark1.6推出的RpcEnv、RpcEndPoint、RpcEndpointRef为核心的新型架构下的RPC通信方式,在底层封装了Akka和Netty,为未来扩充更多的通信系统提供了可能。RpcEnv是一个更宏观的Env,是Spark集群Rpc通信的基础服务环境,因此在集群启动时候所有的节点(无论Master还是Worker)都会创建一个RpcEnv,然后将该节点注册到RpcEnv中。R...

Jorocco的博客 874

【Spark 源码】1-Spark RPC

Spark 的 RPC 概述 Spark 是一个 通用的分布式计算系统,既然是分布式的,必然存在很多节点之间的通信,那么 Spark不同组件之间就会通过 RPC(Remote Procedure Call)进行点对点通信。以下所有都是基于spark2.4.X版本进行分析学习的,该版本也是当前CDH 稳定版本 spark中网络通信无处不在,例如 -driver和master的通信,比如driver会向master发送RegisterApplication消息 ...

zhangxiaohui4445的博客 1984

Spark-RPC框架解析之组件介绍及流程粗探

Spark-RPC框架涉及的组件概念介绍,相关发送信息的关键组件的流程解析

weixin_37990260的博客 1131

Spark 中的 RPC

Spark 是一个 通用的分布式计算系统,既然是分布式的,必然存在很多节点之间的通信,那么 Spark 不同组件之间就会通过 RPC(Remote Procedure Call)进行点对点通信。 Spark 的 RPC 主要在两个模块中: 1,spark-core 中,主要承载了更好的封装 server 和 client 的作用,以及和 scala 语言的融合,它依赖 spark-network-...

朱磊的博客 1076

深入解析Spark中的RPC

前言 Spark是一个快速的、通用的分布式计算系统,而分布式的特性就意味着,必然存在节点间的通信,本文主要介绍不同的Spark组件之间是如何通过RPC(Remote Procedure Call) 进行点对点通信的。分为3个章节, Spark RPC的简单示例和实际应用 Spark RPC模块的设计原理 Spark RPC核心技术总结 1. Spark RPC的简单示例和实际应用 Spark的RPC主要在两个模块中, 1)在Spark-core中,主要承载了更好的封装server和clie.

Big_data_implicit_ 333

spark源码-RPC通信机制

spark源码

m0_37817767的博客 2284

Spark2.1.0之内置RPC框架

        在Spark中很多地方都涉及网络通信,比如Spark各个组件间的消息互通、用户文件与Jar包的上传、节点间的Shuffle过程、Block数据的复制与备份等。在Spark 0.x.x与Spark 1.x.x版本中,组件间的消息通信主要借助于Akka[1],使用Akka可以轻松的构建强有力的高并发与分布式应用。但是Akka在Spark 2.0.0版本中被移除了,Spark官网文档对此...

beliefer的博客 9733
上一篇: Broadcast彻底解析
下一篇: Spark性能调优(一)
囧芝麻
博客等级 码龄10年 10粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值