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内部原理剖析与源码阅读程序设计与企业级应用案例的主要内容,如果未能解决你的问题,请参考以下文章

React 源码剖析系列 - 生命周期的管理艺术

Spring Boot 揭秘与实战 源码分析 - 工作原理剖析

剖析 Vue.js 内部运行机制

福利剖析 Vue.js 内部运行机制小册

spring源码剖析AOP实现原理剖析

剖析Vue原理&实现双向绑定MVVM