Spark入门指南 IV - 抛砖引玉的Spark源码开发

文章也同时在个人博客 http://kimihe.com/更新

引言

"Apache Spark™ is a fast and general engine for large-scale data processing."

Spark是一种高性能分布式计算框架。它基于RDD使用内存来加速迭代过程。相比于前辈Hadoop,Spark有着更好的性能表现,尤其针对Machine Learning此类典型的应用,提升更为显著。

作为入门指南的第四篇,本文将抛砖引玉介绍Spark源码开发。
前文:

  • 《Spark入门指南 I - 快速配置》。
  • 《Spark入门指南 II - 使用IntelliJ IDEA开发》。
  • 《Spark入门指南 III - Spark集群化与Hibench测试集》。

下载Spark源代码

Spark Download地址: 选择2.2.0版本以及Source Code模式。

编译Spark源代码

进入源码根目录,输入如下命令进行编译:

> export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
> ./build/mvn -DskipTests -e clean package

产生的jar包集合位于./assembly/target/scala-2.11/jars/目录下。

IntelliJ IDEA工程

修改源码后,重复执行前小节的编译命令,得到新的jar包集合。
之后可以新建一个新工程,使用上述产生的jar包集合。

  • 新建一个project,选择Scala -> IDEA型。
  • File -> Project Structure -> Libararies, 将jar包集合导入。

上述两步的操作,与“新建SBT型工程 -> 配置build.sbt -> 让IDEA自动去下载Spark相关库依赖”的作用类似。

  • 后续编写与测试应用的步骤与之前文章所讲的IDEA应用开发流程相同。可参考:《Spark入门指南 II - 使用IntelliJ IDEA开发》。

备注:根据笔者的开发习惯,通常会准备ReadingModifyingTesting三个project,分别用于源码的阅读与分析修改与编译测试与运行
这三个project用于本地单机调试,测试无误后,再部署至服务器集群上。

至此,抛砖引玉的“Spark源码开发”介绍完毕。

总结

作为Spark入门指南的第四篇,本文抛砖引玉地介绍了Spark的源码开发。
后续笔者将介绍Scala这门语言,重点阐述其Akka of Actor模型。

你可能感兴趣的:(Spark入门指南 IV - 抛砖引玉的Spark源码开发)