spark的编译

Posted shichunlei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark的编译相关的知识,希望对你有一定的参考价值。

1.下载spark源码包
2.下载scala
3.下载maven
4.防止maven内溢出:

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

5.在spark目录下,有pom文件的那里 执行:
  执行maven安装
 

 ./build/mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.7 -Phive -Phive-thriftserver -Pyarn -DskipTests clean package


6.打包:
 

./dev/make-distribution.sh --name custom-spark --tgz -Psparkr -Phadoop-2.7  

 
   我们可以使用Spark源码目录中的dev下的make-distribution.sh脚本,官方提供的编译命令如下:
       

./dev/make-distribution.sh --name custom-spark --tgz -Psparkr -Phadoop-2.4 -Phive -Phive-thriftserver -Pmesos -Pyarn

    参数说明:
        --name:指定编译完成后Spark安装包的名字
        --tgz:以tgz的方式进行压缩
        -Psparkr:编译出来的Spark支持R语言
        -Phadoop-2.4:以hadoop-2.4的profile进行编译,具体的profile可以看出源码根目录中的pom.xml中查看
        -Phive和-Phive-thriftserver:编译出来的Spark支持对Hive的操作
        -Pmesos:编译出来的Spark支持运行在Mesos上
        -Pyarn:编译出来的Spark支持运行在YARN上

        那么我们可以根据具体的条件来编译Spark,比如我们使用的Hadoop版本是2.6.0-cdh5.7.0,并且我们需要将Spark运行在YARN上、支持对Hive的操作,那么我们的Spark源码编译脚本就是:
            ./dev/make-distribution.sh --name develop-scl --tgz -Pyarn -Phadoop-2.7 -Phive -Phive-thriftserver -Dhadoop.version=2.7.7  -U

以上是关于spark的编译的主要内容,如果未能解决你的问题,请参考以下文章

spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段

是否可以动态编译和执行 C# 代码片段?

Spark闭包与序列化

Notepad++编辑器——Verilog代码片段直接编译

导致资产预编译在heroku部署上失败的代码片段

如何有条件地将 C 代码片段编译到我的 Perl 模块?