源码阅读环境配置:
参考如下博文:Windows + IDEA + SBT 打造Spark源码阅读环境
上面是在windows环境的配置,比较耗时,而且由于网络原因,很有可能出错;在linux环境下就比较简单了:
- 进入spark源代码目录下,运行以下命令:
./sbt/sbt gen-idea
会自动生成idea项目文件; - 然后进入idea,点击
File->Open project
即可。
使用intellij配置开发环境:
- 安装JDK
- 安装Scala
- 安装intellij IDEA,并安装Scala插件
File——>settings——>Plugins
然后搜索Scala,点击安装即可(可能因为网络原因搜不到) - 创建名称为SparkTest的Scala Project;加入编译好的Libraries
spark-assembly-1.3.1-hadoop2.4.0.jar
(直接下载编译好的,在spark的lib目录下) 创建SparkPi程序,复制示例程序进去,如下图
本地运行;
点击运行左边的 Edit configuration,添加Application:SparkPi;
在配置中输入Mian Class:SparkPi
;VM options:-Dspark.master=local
然后点击OK。
运行,出现以下错误:
Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null \bin\winutils.exe in the Hadoop binaries.
点击出错行,发现是HADOOP_HOME没有的原因。
GitHub上,有人提供了winutils的windows的版本,项目地址是: https://github.com/srccodes/hadoop-common-2.2.0-bin
下载后随便解压到一个目录;
配置环境变量HADOOP_HOME,指向下载的zip包解压的目录,然后在系统变量path里增加%HADOOP_HOME%\bin 即可。再次运行 ,出现以下错误:
Exception in thread "main" java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;
主要原因是,之前下载了Scala2.11.7导致的,重新下载Scala2.10.2,运行无报错。