一、准备工作

1、首先,需要对spark的架构和结构有一定的了解,熟悉spark的基本概念,比如RDD、DAG、SparkContext等,以及spark的模块,如core、sql、streaming等,这样才能有效的阅读spark源码。

2、其次,在开始阅读源码之前,需要搭建好spark的开发环境,需要安装scala、maven等,同时也可以使用IDE,比如IntelliJ IDEA、Eclipse等,来更好的阅读源码。

二、源码阅读

1、一般情况下,会先从某一个模块开始,比如core模块,先找到入口类,比如SparkContext,然后再从SparkContext开始,从入口类开始,一步步的深入,逐层深入,看看每一层的实现,以及每一层之间的调用关系。

2、在阅读源码的过程中,可以结合spark的官方文档,比如API文档,来更好的理解源码,此外,也可以使用断点调试的方式,来更好的理解源码。

三、源码实践

1、在阅读完源码后,可以尝试实践一些spark源码,比如自定义RDD、自定义shuffle算法等,从而更好的理解spark的源码。

2、此外,也可以尝试修改spark源码,比如修改某个模块的某个类,或者添加一个新的模块,然后编译,看看是否可以成功,从而更好的理解spark源码。