Spark源码编译、运行 + IntelliJ IDEA+Ubuntu

本人最近由于实验需要,需要对Spark源码进行研读,折腾许久,记录下Spark源码编译、导入 IntelliJ IDEA和顺利运行Spark中自带example的过程。Spark版本是最新的2.3.0版本。

1.Spark源码获取

       Spark的源码获取可以从官网或者是github上获取,由于接下来我们需要对源码进行编译(不借助 IntelliJ IDEA),所以我们直接下载源码压缩包。Github上Spark的下载地址:点击打开链接.

2.Maven安装

      对源码的编译我们采用Maven方式,这里的编译方式完全参照官网文档,官方文档中有个很有趣的现象:他要求使用maven3.3.9或更高版本,然后要求对maven是使用内存进行设置以免报错,然后说了一大堆,又强调即使没有这些设置,脚本也会自动完成对maven的下载和相关设置,也就是说我们啥也不安装不设置,一下载源码就可以进行编译,因为脚本会自动帮助我们完成一切工作。

        但是,为了能够使Spark源码顺利导入IDEA,我们最好安装最新版本Maven,并且将IDEA中maven版本设置成我们安装的版本(自带版本一般没有达到3.3.9版本)。

       1. 下载Maven安装包,获得apache-maven-3.5.3-bin.tar.gz 包。

       2.将apache-maven-3.5.3-bin.tar.gz 包解压到home目录下,然后在~/.bashrc 文件下添加路径(weixun是博主的用户名):

    export MAVEN_HOME=/home/weixun/apache-maven-3.5.3
    export CLASSPATH=$CLASSPATH:$MAVEN_HOME/lib
    export PATH=$PATH:$MAVEN_HOME/bin
        可以选择性的添加一下MAVEN_OPTS,这个不添加也可以,这个标准是参照官网的编译方式添加的。

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

        3. 在终端输入source ~/.bashrc使路径生效

        4.在终端输入mvn -v查看是否安装安装成功,如图

               

     5.修改Maven本地仓库的位置,在Maven的安装目录下,/home/weixun/apache-maven-3.5.3/conf/目录下找到settings.xml,将本地仓库路径修改为/home/weixun/.m2/repository,这个路径是待会编译Spark源码时下载依赖的默认路径,也是IDEA中Maven下载依赖的默认路径,为了避免出问题,我们将他们都设置为一个路径。

          

        6.在IDEA上修改Maven版本,File/Setting/Build,Execution,Deployment/Build Tools/Maven, 如下图,默认的本地仓库路径也就是Local repository就不用修改了。

        


        7.安装和修改完成以后,就可以开始编译Spark源码了。

3. Spark源码编译

        编译方式参照官方文档,如图


        打开终端,进入Spark源码解压目录,然后输入如下命令

      ./build/mvn -DskipTests clean package

        等待一段时间,根据自身网速,就可以完成编译,编译成功的话就会出现这种效果。


        可以测试一下Spark,输入,就可以看到“Spark”字样

./bin/spark-shell
 
 4.将Spark源码导入 IntelliJ IDEA  

        File/Open/ 选中被编译过的Spark源码目录下的pom.xml,开始导入IDEA,等待一段时间以后,在IDEA界面就会看到pom.xml报错,这种被标红的部分分两种情况。

          第一,就是没有像第二步那样对IDEA中Maven版本进行更改,导致有些以来没有下载下来(编译时有些没有下全,可能会碰到这种问题,我导入是就发现checkstyle 8.2没有下载),这时修改Maven版本就会下载这些依赖。


          第二,就是需要人为设置路径的一些参数,如下图,这些我尝试没有填写,在接下来运行Spark中例子时没有任何影响(主要是有些参数我不知道是啥意思,不好填写)

           


5.运行Spark源码中的程序

           在IDEA中导入Spark工程以后,找到/examples/src/main/scala,点击里面的例子进行运行,由于是单机运行,需要添加参数:

    VM options: -Dspark.master=local


这时运行是会报错,如下:


从错误中可以推断是Scala依赖没有建立(因为都是缺Scala最基本的包),这时只要添加Scala依赖就行,这里要注意,Spark版本中Scala依赖是有版本限制的,我们干脆用它编译过程中自动下载的Scala版本,通过如下方式添加Scala依赖:File -> Project Structure -> Modules -> spark-examples_2.11 -> Dependencies添加依赖 jars -> {spark dir}/spark/assembly/target/scala-2.11/jars/,再运行时就不报错了。


6.参考

    1. 官方文档

    2. https://github.com/linbojin/spark-notes/blob/master/ide-setup.md(只要是参照这位大牛的github,大家可以看一下)




阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014512572/article/details/79950682
文章标签: Spark源码编译运行
个人分类: Spark
上一篇Scala语言实现Kmeans聚类算法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭