写在前面
第一次写技术博客,心情十分紧张,虽然可能没有什么人看,虽然可能写的逻辑不同,虽然可能写的有错误,但,还是决定勇敢的写出来。纪念以下
Spark Core 源码阅读笔记
本系列基于Spark-core 2.3.3,scala 2.11 使用IDEA+Maven搭建源码阅读环境 maven所依赖的netty版本为4.1.17-Final
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.3.3</version>
</dependency>
源码阅读笔记思路
最开始,阅读源码的目的是想了解一下Spark是如何进行分布式计算的,以及本着对RPC的兴趣,想搞清楚Spark底层是如何进行RPC通讯的。
但是发现Spark底层是使用基于NIO的Netty作为底层网络模块的,于是就半路去学习了Netty的源码。在本系列中,重点在于Spark,而不在于Netty网络框架,所以,在源码阅读中只涉及必须的Netty应用知识,不会过多提及netty底层。 在了解了java NIO以及netty之后,开始着手研究Spark core的源码。本着搞清楚每一个进程、每一个基本组件的原则,按照Spark环境启动、执行任务的顺序,源码阅读分为以下几部分:
- 启动脚本的解析
- Master节点进程解析
- Worker节点进程解析
- Spark RPC 模块揭秘
- 任务提交过程详解
- Executor线程解析
- 未完待续
如有错误,欢迎批评指出