Spark 中的 RPC 的几个类
Spark 中 RPC 部分的涉及了几个类,有点晕,在此记录一下
1. RpcEndpoint: RPC的一个端点。给定了相应消息的触发函数。保证 `onStart`, `receive` and `onStop` 函数按顺序触发。
2. RpcEndpointRef: 一个远程的 RpcEndpoint
3. RpcEnv: RPC的环境。 RpcEndpoint 需要用一个名字在 RpcEnv 进行注册用于接收消息。RpcEnv 将处理从 RpcEndpointRef 或远程发来的消息,然后发送给相应的 RpcEndpoint 。
4. RpcAddress : 用主机+端口表示的一个 Rpc 地址。
5. Dispatcher: 消息收发者, 负责把消息路由给相应的 RPC 端点。
6. RpcEndpointVerifier : 验证 RpcEnv 中某个 RpcEndpoint 是否存在的 RpcEndpoint。
7. Inbox : 为一个 RpcEndpoint 存储消息并发送给这个 RpcEndpoint 的信箱
8. NettyRpcHandler: 把收到的 Rpc 消息分发给在 RpcEnv 注册过的 RpcEndpoint(通过 Dispatcher)。会保持所有与之通信的客户端。此类 NettyRpcEnv.scala 中。
9. TransportServer:高效的、底层流服务。此类中会真正启动 Netty 的服务端
10. TransportContext:包含了用于创建 TransportServer 和 TransportClientFactory的上下文,并且用于设置 Netty 的 Channel pipelines。
11. TransportRequestHandler: 注册在 Netty channel 上的 handler。处理从客户端发来的请求。
12. TransportResponseHandler: 注册在 Netty channel 上的 handler。处理从服务端返回的消息。
Spark 中的 RPC 的几个类的更多相关文章
- Spark中经常使用工具类Utils的简明介绍
<深入理解Spark:核心思想与源代码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源代码分析>一书正式出版上市 <深入理解Spark:核心思想与源代码分析 ...
- Spark中常用工具类Utils的简明介绍
<深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...
- 【原】Spark中Client源码分析(二)
继续前一篇的内容.前一篇内容为: Spark中Client源码分析(一)http://www.cnblogs.com/yourarebest/p/5313006.html DriverClient中的 ...
- spark 源码分析之五 -- Spark内置RPC机制剖析之一创建NettyRpcEnv
在前面源码剖析介绍中,spark 源码分析之二 -- SparkContext 的初始化过程 中的SparkEnv和 spark 源码分析之四 -- TaskScheduler的创建和启动过程 中的C ...
- Scala 深入浅出实战经典 第65讲:Scala中隐式转换内幕揭秘、最佳实践及其在Spark中的应用源码解析
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Scala 深入浅出实战经典 第51讲:Scala中链式调用风格的实现代码实战及其在Spark中应用
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Spark中的编程模型
1. Spark中的基本概念 Application:基于Spark的用户程序,包含了一个driver program和集群中多个executor. Driver Program:运行Applicat ...
- Spark小课堂Week7 从Spark中一个例子看面向对象设计
Spark小课堂Week7 从Spark中一个例子看面向对象设计 今天我们讨论了个问题,来设计一个Spark中的常用功能. 功能描述:数据源是一切处理的源头,这次要实现下加载数据源的方法load() ...
- Spark中shuffle的触发和调度
Spark中的shuffle是在干嘛? Shuffle在Spark中即是把父RDD中的KV对按照Key重新分区,从而得到一个新的RDD.也就是说原本同属于父RDD同一个分区的数据需要进入到子RDD的不 ...
随机推荐
- pyglet--EventLoop对象(主事件循环,用于从系统消息队列中取出消息,并派发给各个窗口)
一.识别系统消息,并派出该消息 EventLoop(应用程序的事件循环),用于循环的从系统消息队列中获取系统消息(包含消息的各种参数:如鼠标位置,事件类型,鼠标左右键,哪个键盘键等),然后派发相应的事 ...
- VScode 为 *.cu文件 添加高亮及c++ intelligence相关操作的方法
问题:*.cu在VScode不能像*.cc或*.cpp一样在c++及c++ intelligence插件有关键字的高亮以及go to definition等的操作 解决方案:添加*.cu与*.cpp文 ...
- Convolutional Neural Networks for Visual Recognition 2
Linear Classification 在上一讲里,我们介绍了图像分类问题以及一个简单的分类模型K-NN模型,我们已经知道K-NN的模型有几个严重的缺陷,第一就是要保存训练集里的所有样本,这个比较 ...
- LeetCode:Add Digits - 非负整数各位相加
1.题目名称 Add Digits (非负整数各位相加) 2.题目地址 https://leetcode.com/problems/add-digits/ 3.题目内容 英文:Given a non- ...
- [转]关于新一轮QQ Tencent://Message 在线联系
关于在线QQ代码. 以前的QQ代码都需要添加好友. 现在的 首先是到http://wp.qq.com/生成你的QQ在线代码 很长的一段代码,并且每个QQ生成的sigT字符串都是不一样的.. 闲来无事, ...
- C++输入输出知识
1.strtok将字符串中的单词用' '分割出来 #include<iostream> #include<cstdio> #include<cstdlib> #in ...
- 【转】深刻理解render 和 redirect_to
由于最近老是在表单提交后出现没有反应的现象,发现是在action中的使用render 和 redirect_to的原因,于是就想搞清楚他两真正的区别在哪里,上一遍的blog也谈到了这二者的区别,但是有 ...
- Python-Redis的Hash操作
Redis的hash是一个string类型的field和value的映射表,特别适合用于存储对象,每个hash可以存储40多亿键值对 hset(name, key, value):创建一个name的类 ...
- C/C++中变量类型最值之宏定义
C/C++ [climits(limits.h)] CHAR_BIT Number of bits for a char object (byte) ...
- 请定义一个宏,比较两个数的a、b的大小,不能使用大于、小于、if语句
请定义一个宏,比较两个数的a.b的大小,不能使用大于.小于.if语句 方法一: #define max(a,b) ((((long)((a)-(b)))&0x80000000)?(b): ...