分析Spark源码第一步——搭建源码阅读环境

为了深入理解spark,想了解一下源码,故搭建了一下源码阅读环境。我是在windows环境下进行的。

step1:工具的获取

我安装的软件及版本如下,搭建之前请安装好这些:

(1)java1.8

(2)scala   安装可参考http://www.runoob.com/scala/scala-install.html

(3)maven 参考 https://www.yiibai.com/maven/maven_environment_setup.html#

(4)git 

(5)intellij idea

我安装的版本如下图所示:

分析Spark源码第一步——搭建源码阅读环境_第1张图片

step2:下载spark源码,http://spark.apache.org/downloads.html 选择source code,我选择的是spark2.3

step3:在编译之前,首先需要对Maven的相关参数进行配置,以确保编译过程中不会出错,在Maven安装目录下找到bin/mvn.cmd文件,打开在文件中添加

MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"

step4:切换目录到Spark源码根目录下面,开始编译Spark源码:

mvn -DskipTests clean package

过了一会,出错了,错误信息为java.io.IOException:cannt run program “bash”

查完资料,发现Spark编译需要在bash环境下,直接在windows环境下编译会报不支持bash错误,所以就利用git的bash窗口进行编译。

step5:打开Git Bash,切换到spark源码根目录下,重新编译,过了一个小时左右(可能是实验室网太卡了),编译完成,如图所示:

分析Spark源码第一步——搭建源码阅读环境_第2张图片

step6:

安装好IDEA之后,还需要下面这些步骤。

(1)安装scala插件

File-->Settings-->Plugins-->Install JetBrains plugin

搜索scala,选择Download and Install.安装完成之后,重启IDEA。

(2)配置sbt

File-->Settings-->Build,Execution,Deployment-->Build Tools-->SBT

JVM-->Custom 选择你自己的Java 安装目录

Launcher(sbt-launch.jar)-->Custom 选择你自己的sbt-launch.jar

(3)配置Maven

File-->Settings-->Build,Execution,Deployment-->Build Tools-->Maven

修改Maven home directory, 设置成你的安装目录

修改User settings file,设置成你的安装目录下面conf中settings.xml

File-->Settings-->Build,Execution,Deployment-->Build Tools-->Maven-->Runner

VM Options 加入如下参数-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m

JRE 设置成自己想要的Java版本

(4)配置scala

File-->Settings-->Build,Execution,Deployment-->Compile-->Scala Compile-->Scala Compile Server

选中 Use external compile server for scala

JVM SDK 设置成自己需要的。

step7:在idea中导入项目

步骤:File -> Open -> {spark dir}/pom.xml -> Open as Project       //spark dir为你安装的spark路径

step8:运行实例进行测试,我选择的是sparkpi实例

(1)配置运行参数 Menu -> Run -> Edit Configurations -> 选择 + -> Application

分析Spark源码第一步——搭建源码阅读环境_第3张图片

VM options: -Dspark.master=local  代表使用本地模式运行Spark代码,也可以选择其他模式。

(2)运行后报错 Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Seq

解决方法:

Menu -> File -> Project Structure -> Modules -> spark-examples_2.11 -> Dependencies 添加依赖 jars -> {spark dir}/spark/assembly/target/scala-2.11/jars/

(3)重新运行  成功

 

分析Spark源码第一步——搭建源码阅读环境_第4张图片

总结:还算顺利完成了源码阅读环境搭建,参考了以下

https://github.com/linbojin/spark-notes/blob/master/media/01-debug.jpg

https://blog.csdn.net/ggz631047367/article/details/53811213

https://blog.csdn.net/peter1220/article/details/52490886

https://blog.csdn.net/do_yourself_go_on/article/details/73129408

有问题可留言,大家一起讨论。

 

 

 

你可能感兴趣的:(大数据)