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

文章也同时在简书更新

引言

“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源代码

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

1
2
> 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相关库依赖”的作用类似。

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

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

总结

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

周鶏🐣(Kimiko) wechat
拿起手机扫一扫,欢迎关注我的个人微信公众号:「洛斯里克的大书库」。
坚持原创技术分享,您的支持将鼓励我继续创作!