Spark2.1内部原理剖析与源码阅读程序设计与企业级应用案例
Posted abc1168
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark2.1内部原理剖析与源码阅读程序设计与企业级应用案例相关的知识,希望对你有一定的参考价值。
1、本文目标以及其它说明:
本文或者本次系列主要是弄清楚spark.2.2.0版本中,spark core 包下rpc通信情况。从源代码上面看到,底层通信是用的netty,因为本系列以及本文是专项学习spark,故netty只会涉及到不会去讲解。在读源码前考虑到spark的体系结构有spark core / spark sql / spark streaming / spark machinelearning / spark graphx ,所有的都是依赖于spark core ,所以先从spark core 开始研究,又因为看源码的过程中脑子里老是在想底层通信是怎么回事,故首先就是从一个子项目的底层模块一个一个地突破。整体研究思路是模块中的数据结构,以及数据结构之间是什么关系,以及数据结构之间的算法。即(软件 = 数据结构 + 算法)
2、rpc 包下面的数据结构说明
研究思路说明: 因为软件 = 数据结构+算法。算法是基于数据结构,所以会先研究数据结构。先从包里面最简单的数据结构开始,由简单到复杂的数据结构。包括数据结构签名、作用、以及封装抽象的类型等等。
a: 样例类 RpcAddress:封装的是 IP+端口。
联想计算机网络:
1 、由计算机网络可以知道,通过IP+端口我们就能够定位到网络中具体的某个进程,并能够和她通信,建立联系。
2、因为是spark的RPC,通信用的协议是spark专有的。类比于HTTP协议
private[spark] case class RpcAddress(host: String, port: Int) { def hostPort: String = host + ":" + port /** Returns a string in the form of "spark://host:port". */ def toSparkURL: String = "spark://" + hostPort override def toString: String = hostPort }
以上是关于Spark2.1内部原理剖析与源码阅读程序设计与企业级应用案例的主要内容,如果未能解决你的问题,请参考以下文章