折腾了好几天,开始在windows上直接拿源码编译,中间出现各种问题,最后样例运行不了,各种找解决方案,也没成功。后来又换到Linux上,折腾了一下午终于成功了。
首先贴出参考文章:
http://blog.csdn.net/hxpjava1/article/details/19177913#t7
步骤基本是相同的,不同的就是我遇到了一些错误,找的别的解决方案。
下面的一些步骤,有一些事需要重启电脑的,更改jdk的配置,和更改网络的配置的时候,都重启了电脑就好了,否则还是原来的配置。
首先需要准备的环境:
Ubuntu, JDK 1.7, Spark 0.7.2, Scala 2.9.31.安装jdk1.7
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
安装方法,网上有好多教程,这个就不多说了,或者按照上文中的方法,直接在线安装。
2. 安装scala 2.9.3
下载地址:http://www.scala-lang.org/download/2.9.3.html
下载scala-2.9.3.tgz,保存到home目录下
运行下面的命令:
$ tar -zxf scala-2.9.3.tgz
$ sudo mv scala-2.9.3 /usr/lib
$ sudo vim /etc/profile
# add the following lines at the end
export SCALA_HOME=/usr/lib/scala-2.9.3
export PATH=$PATH:$SCALA_HOME/bin
# save and exit vim
#make the bash profile take effect immediately
source /etc/profile
# test
$ scala -version
如果出现javac不能识别的错误,请检查jdk路径是否配置成功。
3. 下载预编译好的Spark
下载预编译好的Spark,spark-0.7.2-prebuilt-hadoop1.tgz.
下载地址:http://spark-project.org/download/
如果你想从零开始编译,则下载源码包,但是我不建议你这么做,因为有一个Maven仓库,twitter4j.org, 被墙了,导致编译时需要翻墙,非常麻烦。如果你有DIY精神,并能顺利翻墙,则可以试试这种方式。
4. 本地模式
4.1 解压
$ tar -zxf spark-0.7.2-prebuilt-hadoop1.tgz
4.2 设置SPARK_EXAMPLES_JAR 环境变量
$ vim ~/.bash_profile # add the following lines at the end export SPARK_EXAMPLES_JAR=$HOME/spark-0.7.2/examples/target/scala-2.9.3/spark-examples_2.9.3-0.7.2.jar # save and exit vim #make the bash profile take effect immediately $ source /etc/profile
这一步其实最关键,很不幸的是,官方文档和网上的博客,都没有提及这一点。我是偶然看到了这两篇帖子,Running SparkPi, Null pointer exception when running ./run spark.examples.SparkPi local,才补上了这一步,之前死活都无法运行SparkPi。着一定要确保配置成功,否则样例是运行不了的,出现空指针错误,要查看/etc/profile中,是否把上面的环境变量给添加进去了,如果没有添加进去,就手动粘贴进去。我的就是因为执行了代码,但是也没添加进去,最后手动添加的,费了好半天劲才找到错误。
4.3 (可选)设置 SPARK_HOME环境变量,并将SPARK_HOME/bin加入PATH
$ vim ~/.bash_profile # add the following lines at the end export SPARK_HOME=$HOME/spark-0.7.2 export PATH=$PATH:$SPARK_HOME/bin # save and exit vim #make the bash profile take effect immediately $ source /etc/profile
4.4 现在可以运行SparkPi了
在运行样例之前,先到spark-0.7.2目录下运行一下spark-shell,可能会出现网络的错误
java.net.UnknownHostException:……,这个要去检查/etc/hosts文件,有一个是localhost,还有一个是你的主机名,看看主机名是否匹配,我就是一开始把主机名给改了,导致名字不匹配,出现的这个错误,改过了就好了,用 sudo vi /etc/hosts命令,非超级用户可能会改不了。
$ cd ~/spark-0.7.2 $ ./run spark.examples.SparkPi local