Spark源码是有Scala语言写成的,目前,IDEA对Scala的支持要比eclipse要好,大多数人会选在在IDEA上完成Spark平台应用的开发。因此,Spark源码阅读的IDE理所当然的选择了IDEA。今天将与大家分型Windows7+IDEA+SBT搭建Spark源代码调试与阅读环境。
实验环境准备:
l JDK: Java 语言的软件开发工具包(SDK)
参考网址: http://www.oracle/technetwork/java/javase/downloads/index.html
l IDEA:有两个版本:Ultimate Edition & Community Edition,后者是free的,而且完全能满足学习者所有的需求
参考网址:http://www.jetbrains/idea/download/
l Scala:Spark是用Scala语言写成的,在本地编译执行需要这个包
参考网址:http://www.scala-lang/download/
l SBT:scala工程构建的工具
参考网址:http://www.scala-sbt/download.html
l Git:IDEA自动下载SBT插件时可能会用到的工具
参考网址:http://git-scm/download/
l Spark Source Code:Spark源码
参考网址:http://git-scm/download/
第一部分:下载安装如上软件并实验环境测试准备:
JDK软件验证测试:
完成后,在windows命令行中输入Java -version,检查是否识别此命令。
如果不识别,查看环境变量Path中是否有....\jdk\bin(我的电脑右键,属性 -> 高级系统设置 -> 环境变量),如果没有,自己手动添加Scala文件夹下的bin目录的路径。
Scala软件验证测试:
完成后,在windows命令行中输入scala,检查是否识别此命令。
如果不识别,查看环境变量Path中是否有....\scala\bin(我的电脑右键,属性 -> 高级系统设置 -> 环境变量),如果没有,自己手动添加Scala文件夹下的bin目录的路径。
SBT软件验证测试:
运行SBT的安装程序,运行完成后,重新打开windows命令行,输入sbt,检查是否识别此命令。没有的话,手动配置环境变量,添加...\sbt\bin
运行完SBT的安装程序之后,并不意味着完成了sbt的安装,在windows命令放下输入sbt后,SBT会自动的下载安装它所需要的程序包,请耐心等待全部下载成功。
Git软件验证测试:
运行Git的安装程序,安装完成后,重新打开windows命令行,检查时候识别git命令。或者直接启动GitHub,Inc/Git Shell程序。
安装IDEA软件
按要求直接安装即可。
第二部分:IDEA的Scala插件安装:
1、选择FileàSetting
2、选择右侧的 Install Jetbrains Plugin, 在弹出窗口的左侧输入scala,然后点击安装,如下图所示。
3、scala插件安装结束,需要重启idea生效
第三部分:加压缩官网下载的源代码包或者找到通过Git抽取的Spark源文件:
我用的是spark-1.1.1版本(最新版本),由于idea 13已经原生支持sbt,所以无须为idea安装sbt插件。
源码下载(用git工具):
# Masterdevelopment branch
gitclone git://github/apache/spark.git
# 1.1 maintenancebranch with stability fixes on top of Spark 1.1.1
gitclone git://github/apache/spark.git -b branch-1.1
源码更新(用git工具同步跟新源码):
gitclone https://github/apache/spark.git
注解:这用IDEA导入Spark源代码时,可以省略下面这些操作,可以直接进入第四部分,实际上在用IDEA导入Spark源代码时,里面了包含了如下操作,即生成idea工程(记得是进入源代码项目中,我下载的源代码放在E:\Spark计算框架的研究\spark_1_1_1_idea文件夹中),命令如下:
先用命令sbt,之后用命令gen-idea,如下图所示:
出现如下错误:
错误原因及解决方案:由于文件路径中出现了中文,解决方案,将中文路径改为英文路径。
第四部分:在IDEA中导入Spark工程
1、在主界面的菜单栏File下,选Import Project,找到解压之后的spark工程文件夹,我暂时选的为(E:\Spark计算框架的研究\spark_1_1_idea)文件夹。
(解压缩的Spark源代码可以先不用sbt工具生成ieda工程的,IDEA内在导入文件时,直接包含了sbt生成idea工程的功能)
2、选择项目类型为sbt project,然后点击next。(这个选项只有在安装了IDEA的Scala插件才会有)。
3、确定SBT project项目的位置,(注解:有些blog说是——选择Project SDK为JDK,不解,我在此标明一下),最好勾上Use auto-import,然后点击Finish。这时,IDEA会自动下载安装SBT所需的各个包,没有装Git的话可能会报错。
第一次解释后,出现如下错误。
继续操作一遍出现如下错误:(注解:和单独用cmd命令sbt,之后gen-idea,是一样的错误)
错误原因及解决方案:由于文件路径中出现了中文,解决方案,将中文路径改为英文路径。本文我从新解压Spark-1.1.1.tgz源代码放入如下路径(E:\spark_1_1_1_idea_English),按第四部分中的1,2,3再重复操作一篇。操作成功了。如下所示:
4、导入完成
导入完成后,自动打开工程,要等一段时间,等待sbt对这个工程进行编译。编译完成后出现如下窗口。在出现的窗口中就可以进行Spark源代码进行研究了,是不是感觉很有成就感,现在就开始研究只有2万行左右的Spark核心源代码吧。如果你觉得白色背景不好看,可以换上很酷的黑色背景,设置步骤如下:
File à Settings à Appearance à Theme 选择Darcula,之后重新启动即可。
参考的Blog网址:
IntelliJ Scala plugin blog
http://blog.jetbrains/scala/2012/12/28/a-new-way-to-compile/
ApacheSpark源码走读之18 -- 使用Intellij idea调试Spark源码 - 徽沪一郎
http://www.tuicool/articles/3yy67fU
Spark作业代码(源码)IDE远程调试-其它
http://www.68dl/bigdata_tech/2014/1106/17930.html
Windows + IDEA + SBT 打造Spark源码阅读环境 2014-10-15 by guozhongxin
http://www.guozhongxin/pages/2014/10/15/spark_source_code.html
Spark开发环境的配置
http://cn.soulmachine.me/blog/20140130/
想研读下spark的源码,怎么搭阅读和调试的环境呢?
http://www.zhihu/question/24869894/answer/29269940