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

原创 2018年04月15日 19:37:58

本人最近由于实验需要,需要对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

Intellij IDEA入门到精通(一)

Intellij IDEA入门到精通主要是帮助Java学员快速掌握Intellij IDEA开发工具,本系列课程讲解了很多插件的使用,帮助开发人员提高工作效率。
  • 2017年08月14日 00:13

使用 IntelliJ IDEA 导入 Spark 最新源码及编译 Spark 源代码

原文链接 https://www.cnblogs.com/zlslch/p/5881893.html 前言     其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spa...
  • zy_zhengyang
  • zy_zhengyang
  • 2017-11-20 13:10:56
  • 401

Intellij sbt 编译Spark 完全教程

1. 准备工作 首先你的系统中需要安装了 JDK 1.6+,并且安装了 Scala。之后下载最新版的 IntelliJ IDEA 后,首先安装(第一次打开会推荐你安装)Scala 插件,相关方法就不...
  • peter1220
  • peter1220
  • 2016-09-09 22:10:30
  • 1873

spark (java API) 在Intellij IDEA中开发并运行

概述:Spark 程序开发,调试和运行,intellij idea开发Spark java程序。 分两部分,第一部分基于intellij idea开发Spark实例程序并在intellij IDEA...
  • dream_an
  • dream_an
  • 2017-02-07 20:50:39
  • 9066

使用IntelliJ IDEA编写SparkPi直接在Spark中运行

使用IntelliJ IDEA编写Scala在Spark中运行环境说明:hadoop-2.2.0+spark-1.1.0 hadoop是完全分布式,spark是standalone。在master节...
  • GYQJN
  • GYQJN
  • 2015-10-26 11:55:17
  • 5568

IntelliJ Idea开发spark程序及运行

  • 2016年08月25日 12:01
  • 240KB
  • 下载

Spark开发环境配置(windows/Intellij IDEA 篇)

Intellij IDEA是一个蛮不错的IDE,在java/scala/Groovy领域深得人心。笔者之前使用的是Eclipse那一套开发环境,虽然也不错,但忍不住好奇心的驱使,折腾了一下IDEA,发...
  • a_step_further
  • a_step_further
  • 2016-04-18 08:16:33
  • 10411

Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行

1. Intellij IDEA 开发环境搭建 最近在学习scala,除需要编写scala程序外,同时还需要创建maven工程,打成Jar包,而Eclipse在这方面显得使用的不是那么方面,同时由于...
  • love666666shen
  • love666666shen
  • 2017-11-06 22:11:46
  • 2655

从Intellij IDEA开始第一个Spark程序

先前在Windows上倒腾了一份Scala的开发环境,然后换到Mac环境上,重新来了一遍,为了防止自己的再度忘记,记录在本博客中。好,废话不说,开始。1:Intellij IDEA的安装习惯用Ecli...
  • u013384984
  • u013384984
  • 2018-03-24 20:22:59
  • 33

编译Spark源码

编译spark源码时可能会报下面这个错误, uncaught exception during compilation: java.lang.StackOverflowError 需要设置mav...
  • q79969786
  • q79969786
  • 2015-05-14 23:46:47
  • 961
收藏助手
不良信息举报
您举报文章:Spark源码编译、运行 + IntelliJ IDEA+Ubuntu
举报原因:
原因补充:

(最多只允许输入30个字)