1.4 Spark源码编译与调试
1. 下载Spark源码
首先,访问Spark官网http://spark.apache.org/,如图1-21所示。
图1-21 Spark官网
点击Download Spark按钮,在下一个页面找到Git地址,如图1-22所示。
图1-22 Spark官方Git地址
笔者在当前用户目录下创建Source文件夹作为放置Spark源码的地方,进入此文件夹并输入git clone git://github.com/apache/spark.git命令将源码下载到本地,如图1-23所示。
图1-23 下载Spark源码
2. 构建Scala应用
进入Spark根目录,执行sbt命令。然后会下载和解析很多Jar包,要等待一段时间,笔者大概花费了一个多小时才执行完,如图1-24所示。
图1-24 构建Scala应用
从图1-24中可以看出,sbt构建完毕时会出现提示符“>”。
3. 使用sbt生成Eclipse工程文件
在sbt命令出现提示符“>”后,输入eclipse命令,开始生成Eclipse工程文件,也需要花费很长的时间,笔者大致花费了40分钟。完成时的状况如图1-25所示。
图1-25 sbt编译过程
现在我们查看Spark下的子文件夹,发现其中都生成了.project和.classpath文件。比如mllib项目下就生成了.project和.classpath文件,如图1-26所示。
图1-26 sbt生成的项目文件
4. 编译Spark源码
由于Spark使用Maven作为项目管理工具,所以需要将Spark项目作为Maven项目导入到Eclipse中,如图1-27所示。
图1-27 导入Maven项目
点击Next按钮进入下一个对话框,如图1-28所示。
图1-28 选择Maven项目
全选所有项目,点击finish按钮,这样就完成了导入,如图1-29所示。
图1-29 导入完成的项目
导入完成后,需要设置每个子项目的Build Path。右击每个项目,选择Build Path→Configure Build Path命令,打开Java Build Path对话框,如图1-30所示。
图1-30 Java构建路径
Eclipse在对项目编译时,可能会出现很多错误,只要仔细分析报错原因就能一一排除。所有错误解决后运行mvn clean install,如图1-31所示。
图1-31 编译成功
5. 调试Spark源码
以Spark源码自带的JavaWordCount为例,介绍如何调试Spark源码。右击JavaWordCount.java,选择Debug As→Java Application命令即可。如果想修改配置参数,右击JavaWordCount.java,选择Debug As→Debug Configurations命令,从打开的对话框中选择JavaWordCount,在右侧区域可以修改Java执行参数、JRE、classpath、环境变量等配置,如图1-32所示。
图1-32 源码调试
读者也可以在Spark源码中设置断点,进行跟踪调试。