美文网首页
spark源码的编译打包和使用

spark源码的编译打包和使用

作者: 尼飞彼多喵 | 来源:发表于2018-05-31 09:54 被阅读0次

    本文主要写的内容是从spark官网上下载spark源代码,然后通过Maven对其进行编译打包,并且运用该jar包的过程,完全是新手级操作。但第一次操作时还是遇到了许多问题,简单的记录下自己正确的解决过程。

    由于是在windows下进行的操作,所以下述代码都是在git bash中运行。(主要是windows下./build/mvn这样的操作无法使用)
    首先设置Maven的内存:

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

    由于我在将来只打算对spark内的随机森林源代码做出一些修改,所以并不需要将所有模块都编译成jar包。
    通过-pl选项,只build相应的子模块如mllib。通过-DskipTests选项跳过对test的build。在本地的源文件目录下如:/d/spark-2.3.0-source下执行如下代码

    ./build/mvn -pl :spark-mllib_2.11 -DskipTests clean package
    

    由于在mllib中有些操作(Vectors从mllib转化到ml里)需要用到spark-mllib-local_2.11包里的类,所以在第一次使用编译的子模块时还需要:

    ./build/mvn -pl :spark-mllib-local_2.11 -DskipTests clean package
    

    通过在Intellij IDEA中的Project Structure中将上述两个子模块的jar包导入。


    导入jar包

    在使用我们自己编译的spark源码jar包时,由于mllib的Vectors中有依赖到breeze包,所以需要在我们的pom文件的依赖中添加:

            <dependency>
                <groupId>org.scalanlp</groupId>
                <artifactId>breeze_2.11</artifactId>
                <version>0.13.2</version>
            </dependency>
    

    至此我们便完成了将spark源码编译打包并且使用的过程。

    相关文章

      网友评论

          本文标题:spark源码的编译打包和使用

          本文链接:https://www.haomeiwen.com/subject/ayuojftx.html