文章也同时在个人博客 http://kimihe.com/更新
引言
"Apache Spark™ is a fast and general engine for large-scale data processing."
Spark是一种高性能分布式计算框架。它基于RDD使用内存来加速迭代过程。相比于前辈Hadoop,Spark有着更好的性能表现,尤其针对Machine Learning此类典型的应用,提升更为显著。
作为入门指南的第四篇,本文将抛砖引玉介绍Spark源码开发。
前文:
下载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开发》。
备注:根据笔者的开发习惯,通常会准备Reading,Modifying,Testing三个project,分别用于源码的阅读与分析,修改与编译,测试与运行。
这三个project用于本地单机调试,测试无误后,再部署至服务器集群上。
至此,抛砖引玉的“Spark源码开发”介绍完毕。
总结
作为Spark入门指南的第四篇,本文抛砖引玉地介绍了Spark的源码开发。
后续笔者将介绍Scala这门语言,重点阐述其Akka of Actor模型。